home *** CD-ROM | disk | FTP | other *** search
/ Programming a Multiplayer FPS in DirectX / Programming a Multiplayer FPS in DirectX (Companion CD).iso / DirectX / dxsdk_oct2004.exe / dxsdk.exe / Include / vmr9.h < prev    next >
Encoding:
C/C++ Source or Header  |  2004-09-29  |  100.6 KB  |  3,355 lines

  1.  
  2. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  3.  
  4. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  5.  
  6.  
  7.  /* File created by MIDL compiler version 6.00.0347 */
  8. /* Compiler settings for vmr9.idl:
  9.     Oicf, W1, Zp8, env=Win32 (32b run)
  10.     protocol : dce , ms_ext, c_ext, robust
  11.     error checks: allocation ref bounds_check enum stub_data 
  12.     VC __declspec() decoration level: 
  13.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  14.          DECLSPEC_UUID(), MIDL_INTERFACE()
  15. */
  16. //@@MIDL_FILE_HEADING(  )
  17.  
  18.  
  19. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  20. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  21. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  22. #endif
  23.  
  24. #include "rpc.h"
  25. #include "rpcndr.h"
  26.  
  27. #ifndef __RPCNDR_H_VERSION__
  28. #error this stub requires an updated version of <rpcndr.h>
  29. #endif // __RPCNDR_H_VERSION__
  30.  
  31. #ifndef COM_NO_WINDOWS_H
  32. #include "windows.h"
  33. #include "ole2.h"
  34. #endif /*COM_NO_WINDOWS_H*/
  35.  
  36. #ifndef __vmr9_h__
  37. #define __vmr9_h__
  38.  
  39. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  40. #pragma once
  41. #endif
  42.  
  43. /* Forward Declarations */ 
  44.  
  45. #ifndef __IVMRImagePresenter9_FWD_DEFINED__
  46. #define __IVMRImagePresenter9_FWD_DEFINED__
  47. typedef interface IVMRImagePresenter9 IVMRImagePresenter9;
  48. #endif     /* __IVMRImagePresenter9_FWD_DEFINED__ */
  49.  
  50.  
  51. #ifndef __IVMRSurfaceAllocator9_FWD_DEFINED__
  52. #define __IVMRSurfaceAllocator9_FWD_DEFINED__
  53. typedef interface IVMRSurfaceAllocator9 IVMRSurfaceAllocator9;
  54. #endif     /* __IVMRSurfaceAllocator9_FWD_DEFINED__ */
  55.  
  56.  
  57. #ifndef __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
  58. #define __IVMRSurfaceAllocatorEx9_FWD_DEFINED__
  59. typedef interface IVMRSurfaceAllocatorEx9 IVMRSurfaceAllocatorEx9;
  60. #endif     /* __IVMRSurfaceAllocatorEx9_FWD_DEFINED__ */
  61.  
  62.  
  63. #ifndef __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
  64. #define __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__
  65. typedef interface IVMRSurfaceAllocatorNotify9 IVMRSurfaceAllocatorNotify9;
  66. #endif     /* __IVMRSurfaceAllocatorNotify9_FWD_DEFINED__ */
  67.  
  68.  
  69. #ifndef __IVMRWindowlessControl9_FWD_DEFINED__
  70. #define __IVMRWindowlessControl9_FWD_DEFINED__
  71. typedef interface IVMRWindowlessControl9 IVMRWindowlessControl9;
  72. #endif     /* __IVMRWindowlessControl9_FWD_DEFINED__ */
  73.  
  74.  
  75. #ifndef __IVMRMixerControl9_FWD_DEFINED__
  76. #define __IVMRMixerControl9_FWD_DEFINED__
  77. typedef interface IVMRMixerControl9 IVMRMixerControl9;
  78. #endif     /* __IVMRMixerControl9_FWD_DEFINED__ */
  79.  
  80.  
  81. #ifndef __IVMRMixerBitmap9_FWD_DEFINED__
  82. #define __IVMRMixerBitmap9_FWD_DEFINED__
  83. typedef interface IVMRMixerBitmap9 IVMRMixerBitmap9;
  84. #endif     /* __IVMRMixerBitmap9_FWD_DEFINED__ */
  85.  
  86.  
  87. #ifndef __IVMRSurface9_FWD_DEFINED__
  88. #define __IVMRSurface9_FWD_DEFINED__
  89. typedef interface IVMRSurface9 IVMRSurface9;
  90. #endif     /* __IVMRSurface9_FWD_DEFINED__ */
  91.  
  92.  
  93. #ifndef __IVMRImagePresenterConfig9_FWD_DEFINED__
  94. #define __IVMRImagePresenterConfig9_FWD_DEFINED__
  95. typedef interface IVMRImagePresenterConfig9 IVMRImagePresenterConfig9;
  96. #endif     /* __IVMRImagePresenterConfig9_FWD_DEFINED__ */
  97.  
  98.  
  99. #ifndef __IVMRVideoStreamControl9_FWD_DEFINED__
  100. #define __IVMRVideoStreamControl9_FWD_DEFINED__
  101. typedef interface IVMRVideoStreamControl9 IVMRVideoStreamControl9;
  102. #endif     /* __IVMRVideoStreamControl9_FWD_DEFINED__ */
  103.  
  104.  
  105. #ifndef __IVMRFilterConfig9_FWD_DEFINED__
  106. #define __IVMRFilterConfig9_FWD_DEFINED__
  107. typedef interface IVMRFilterConfig9 IVMRFilterConfig9;
  108. #endif     /* __IVMRFilterConfig9_FWD_DEFINED__ */
  109.  
  110.  
  111. #ifndef __IVMRAspectRatioControl9_FWD_DEFINED__
  112. #define __IVMRAspectRatioControl9_FWD_DEFINED__
  113. typedef interface IVMRAspectRatioControl9 IVMRAspectRatioControl9;
  114. #endif     /* __IVMRAspectRatioControl9_FWD_DEFINED__ */
  115.  
  116.  
  117. #ifndef __IVMRMonitorConfig9_FWD_DEFINED__
  118. #define __IVMRMonitorConfig9_FWD_DEFINED__
  119. typedef interface IVMRMonitorConfig9 IVMRMonitorConfig9;
  120. #endif     /* __IVMRMonitorConfig9_FWD_DEFINED__ */
  121.  
  122.  
  123. #ifndef __IVMRDeinterlaceControl9_FWD_DEFINED__
  124. #define __IVMRDeinterlaceControl9_FWD_DEFINED__
  125. typedef interface IVMRDeinterlaceControl9 IVMRDeinterlaceControl9;
  126. #endif     /* __IVMRDeinterlaceControl9_FWD_DEFINED__ */
  127.  
  128.  
  129. #ifndef __IVMRImageCompositor9_FWD_DEFINED__
  130. #define __IVMRImageCompositor9_FWD_DEFINED__
  131. typedef interface IVMRImageCompositor9 IVMRImageCompositor9;
  132. #endif     /* __IVMRImageCompositor9_FWD_DEFINED__ */
  133.  
  134.  
  135. /* header files for imported files */
  136. #include "unknwn.h"
  137.  
  138. #ifdef __cplusplus
  139. extern "C"{
  140. #endif 
  141.  
  142. void * __RPC_USER MIDL_user_allocate(size_t);
  143. void __RPC_USER MIDL_user_free( void * ); 
  144.  
  145. /* interface __MIDL_itf_vmr9_0000 */
  146. /* [local] */ 
  147.  
  148. #if 0
  149. typedef DWORD IDirect3DDevice9;
  150.  
  151. typedef DWORD IDirect3DSurface9;
  152.  
  153. typedef DWORD D3DFORMAT;
  154.  
  155. typedef DWORD D3DCOLOR;
  156.  
  157. typedef DWORD D3DPOOL;
  158.  
  159. typedef LONGLONG REFERENCE_TIME;
  160.  
  161. typedef DWORD *HMONITOR;
  162.  
  163. typedef /* [public][public][public] */ struct __MIDL___MIDL_itf_vmr9_0000_0001
  164.     {
  165.     DWORD dw1;
  166.     DWORD dw2;
  167.     }     AM_MEDIA_TYPE;
  168.  
  169. #endif
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184. typedef /* [public] */ 
  185. enum __MIDL___MIDL_itf_vmr9_0000_0002
  186.     {    VMR9Sample_SyncPoint    = 0x1,
  187.     VMR9Sample_Preroll    = 0x2,
  188.     VMR9Sample_Discontinuity    = 0x4,
  189.     VMR9Sample_TimeValid    = 0x8,
  190.     VMR9Sample_SrcDstRectsValid    = 0x10
  191.     }     VMR9PresentationFlags;
  192.  
  193. typedef struct _VMR9PresentationInfo
  194.     {
  195.     DWORD dwFlags;
  196.     IDirect3DSurface9 *lpSurf;
  197.     REFERENCE_TIME rtStart;
  198.     REFERENCE_TIME rtEnd;
  199.     SIZE szAspectRatio;
  200.     RECT rcSrc;
  201.     RECT rcDst;
  202.     DWORD dwReserved1;
  203.     DWORD dwReserved2;
  204.     }     VMR9PresentationInfo;
  205.  
  206.  
  207.  
  208. extern RPC_IF_HANDLE __MIDL_itf_vmr9_0000_v0_0_c_ifspec;
  209. extern RPC_IF_HANDLE __MIDL_itf_vmr9_0000_v0_0_s_ifspec;
  210.  
  211. #ifndef __IVMRImagePresenter9_INTERFACE_DEFINED__
  212. #define __IVMRImagePresenter9_INTERFACE_DEFINED__
  213.  
  214. /* interface IVMRImagePresenter9 */
  215. /* [unique][helpstring][uuid][local][object][local] */ 
  216.  
  217.  
  218. EXTERN_C const IID IID_IVMRImagePresenter9;
  219.  
  220. #if defined(__cplusplus) && !defined(CINTERFACE)
  221.     
  222.     MIDL_INTERFACE("69188c61-12a3-40f0-8ffc-342e7b433fd7")
  223.     IVMRImagePresenter9 : public IUnknown
  224.     {
  225.     public:
  226.         virtual HRESULT STDMETHODCALLTYPE StartPresenting( 
  227.             /* [in] */ DWORD_PTR dwUserID) = 0;
  228.         
  229.         virtual HRESULT STDMETHODCALLTYPE StopPresenting( 
  230.             /* [in] */ DWORD_PTR dwUserID) = 0;
  231.         
  232.         virtual HRESULT STDMETHODCALLTYPE PresentImage( 
  233.             /* [in] */ DWORD_PTR dwUserID,
  234.             /* [in] */ VMR9PresentationInfo *lpPresInfo) = 0;
  235.         
  236.     };
  237.     
  238. #else     /* C style interface */
  239.  
  240.     typedef struct IVMRImagePresenter9Vtbl
  241.     {
  242.         BEGIN_INTERFACE
  243.         
  244.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  245.             IVMRImagePresenter9 * This,
  246.             /* [in] */ REFIID riid,
  247.             /* [iid_is][out] */ void **ppvObject);
  248.         
  249.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  250.             IVMRImagePresenter9 * This);
  251.         
  252.         ULONG ( STDMETHODCALLTYPE *Release )( 
  253.             IVMRImagePresenter9 * This);
  254.         
  255.         HRESULT ( STDMETHODCALLTYPE *StartPresenting )( 
  256.             IVMRImagePresenter9 * This,
  257.             /* [in] */ DWORD_PTR dwUserID);
  258.         
  259.         HRESULT ( STDMETHODCALLTYPE *StopPresenting )( 
  260.             IVMRImagePresenter9 * This,
  261.             /* [in] */ DWORD_PTR dwUserID);
  262.         
  263.         HRESULT ( STDMETHODCALLTYPE *PresentImage )( 
  264.             IVMRImagePresenter9 * This,
  265.             /* [in] */ DWORD_PTR dwUserID,
  266.             /* [in] */ VMR9PresentationInfo *lpPresInfo);
  267.         
  268.         END_INTERFACE
  269.     } IVMRImagePresenter9Vtbl;
  270.  
  271.     interface IVMRImagePresenter9
  272.     {
  273.         CONST_VTBL struct IVMRImagePresenter9Vtbl *lpVtbl;
  274.     };
  275.  
  276.     
  277.  
  278. #ifdef COBJMACROS
  279.  
  280.  
  281. #define IVMRImagePresenter9_QueryInterface(This,riid,ppvObject)    \
  282.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  283.  
  284. #define IVMRImagePresenter9_AddRef(This)    \
  285.     (This)->lpVtbl -> AddRef(This)
  286.  
  287. #define IVMRImagePresenter9_Release(This)    \
  288.     (This)->lpVtbl -> Release(This)
  289.  
  290.  
  291. #define IVMRImagePresenter9_StartPresenting(This,dwUserID)    \
  292.     (This)->lpVtbl -> StartPresenting(This,dwUserID)
  293.  
  294. #define IVMRImagePresenter9_StopPresenting(This,dwUserID)    \
  295.     (This)->lpVtbl -> StopPresenting(This,dwUserID)
  296.  
  297. #define IVMRImagePresenter9_PresentImage(This,dwUserID,lpPresInfo)    \
  298.     (This)->lpVtbl -> PresentImage(This,dwUserID,lpPresInfo)
  299.  
  300. #endif /* COBJMACROS */
  301.  
  302.  
  303. #endif     /* C style interface */
  304.  
  305.  
  306.  
  307. HRESULT STDMETHODCALLTYPE IVMRImagePresenter9_StartPresenting_Proxy( 
  308.     IVMRImagePresenter9 * This,
  309.     /* [in] */ DWORD_PTR dwUserID);
  310.  
  311.  
  312. void __RPC_STUB IVMRImagePresenter9_StartPresenting_Stub(
  313.     IRpcStubBuffer *This,
  314.     IRpcChannelBuffer *_pRpcChannelBuffer,
  315.     PRPC_MESSAGE _pRpcMessage,
  316.     DWORD *_pdwStubPhase);
  317.  
  318.  
  319. HRESULT STDMETHODCALLTYPE IVMRImagePresenter9_StopPresenting_Proxy( 
  320.     IVMRImagePresenter9 * This,
  321.     /* [in] */ DWORD_PTR dwUserID);
  322.  
  323.  
  324. void __RPC_STUB IVMRImagePresenter9_StopPresenting_Stub(
  325.     IRpcStubBuffer *This,
  326.     IRpcChannelBuffer *_pRpcChannelBuffer,
  327.     PRPC_MESSAGE _pRpcMessage,
  328.     DWORD *_pdwStubPhase);
  329.  
  330.  
  331. HRESULT STDMETHODCALLTYPE IVMRImagePresenter9_PresentImage_Proxy( 
  332.     IVMRImagePresenter9 * This,
  333.     /* [in] */ DWORD_PTR dwUserID,
  334.     /* [in] */ VMR9PresentationInfo *lpPresInfo);
  335.  
  336.  
  337. void __RPC_STUB IVMRImagePresenter9_PresentImage_Stub(
  338.     IRpcStubBuffer *This,
  339.     IRpcChannelBuffer *_pRpcChannelBuffer,
  340.     PRPC_MESSAGE _pRpcMessage,
  341.     DWORD *_pdwStubPhase);
  342.  
  343.  
  344.  
  345. #endif     /* __IVMRImagePresenter9_INTERFACE_DEFINED__ */
  346.  
  347.  
  348. /* interface __MIDL_itf_vmr9_0009 */
  349. /* [local] */ 
  350.  
  351. typedef /* [public] */ 
  352. enum __MIDL___MIDL_itf_vmr9_0009_0001
  353.     {    VMR9AllocFlag_3DRenderTarget    = 0x1,
  354.     VMR9AllocFlag_DXVATarget    = 0x2,
  355.     VMR9AllocFlag_TextureSurface    = 0x4,
  356.     VMR9AllocFlag_OffscreenSurface    = 0x8,
  357.     VMR9AllocFlag_RGBDynamicSwitch    = 0x10,
  358.     VMR9AllocFlag_UsageReserved    = 0xe0,
  359.     VMR9AllocFlag_UsageMask    = 0xff
  360.     }     VMR9SurfaceAllocationFlags;
  361.  
  362. typedef struct _VMR9AllocationInfo
  363.     {
  364.     DWORD dwFlags;
  365.     DWORD dwWidth;
  366.     DWORD dwHeight;
  367.     D3DFORMAT Format;
  368.     D3DPOOL Pool;
  369.     DWORD MinBuffers;
  370.     SIZE szAspectRatio;
  371.     SIZE szNativeSize;
  372.     }     VMR9AllocationInfo;
  373.  
  374.  
  375.  
  376. extern RPC_IF_HANDLE __MIDL_itf_vmr9_0009_v0_0_c_ifspec;
  377. extern RPC_IF_HANDLE __MIDL_itf_vmr9_0009_v0_0_s_ifspec;
  378.  
  379. #ifndef __IVMRSurfaceAllocator9_INTERFACE_DEFINED__
  380. #define __IVMRSurfaceAllocator9_INTERFACE_DEFINED__
  381.  
  382. /* interface IVMRSurfaceAllocator9 */
  383. /* [unique][helpstring][uuid][local][object][local] */ 
  384.  
  385.  
  386. EXTERN_C const IID IID_IVMRSurfaceAllocator9;
  387.  
  388. #if defined(__cplusplus) && !defined(CINTERFACE)
  389.     
  390.     MIDL_INTERFACE("8d5148ea-3f5d-46cf-9df1-d1b896eedb1f")
  391.     IVMRSurfaceAllocator9 : public IUnknown
  392.     {
  393.     public:
  394.         virtual HRESULT STDMETHODCALLTYPE InitializeDevice( 
  395.             /* [in] */ DWORD_PTR dwUserID,
  396.             /* [in] */ VMR9AllocationInfo *lpAllocInfo,
  397.             /* [out][in] */ DWORD *lpNumBuffers) = 0;
  398.         
  399.         virtual HRESULT STDMETHODCALLTYPE TerminateDevice( 
  400.             /* [in] */ DWORD_PTR dwID) = 0;
  401.         
  402.         virtual HRESULT STDMETHODCALLTYPE GetSurface( 
  403.             /* [in] */ DWORD_PTR dwUserID,
  404.             /* [in] */ DWORD SurfaceIndex,
  405.             /* [in] */ DWORD SurfaceFlags,
  406.             /* [out] */ IDirect3DSurface9 **lplpSurface) = 0;
  407.         
  408.         virtual HRESULT STDMETHODCALLTYPE AdviseNotify( 
  409.             /* [in] */ IVMRSurfaceAllocatorNotify9 *lpIVMRSurfAllocNotify) = 0;
  410.         
  411.     };
  412.     
  413. #else     /* C style interface */
  414.  
  415.     typedef struct IVMRSurfaceAllocator9Vtbl
  416.     {
  417.         BEGIN_INTERFACE
  418.         
  419.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  420.             IVMRSurfaceAllocator9 * This,
  421.             /* [in] */ REFIID riid,
  422.             /* [iid_is][out] */ void **ppvObject);
  423.         
  424.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  425.             IVMRSurfaceAllocator9 * This);
  426.         
  427.         ULONG ( STDMETHODCALLTYPE *Release )( 
  428.             IVMRSurfaceAllocator9 * This);
  429.         
  430.         HRESULT ( STDMETHODCALLTYPE *InitializeDevice )( 
  431.             IVMRSurfaceAllocator9 * This,
  432.             /* [in] */ DWORD_PTR dwUserID,
  433.             /* [in] */ VMR9AllocationInfo *lpAllocInfo,
  434.             /* [out][in] */ DWORD *lpNumBuffers);
  435.         
  436.         HRESULT ( STDMETHODCALLTYPE *TerminateDevice )( 
  437.             IVMRSurfaceAllocator9 * This,
  438.             /* [in] */ DWORD_PTR dwID);
  439.         
  440.         HRESULT ( STDMETHODCALLTYPE *GetSurface )( 
  441.             IVMRSurfaceAllocator9 * This,
  442.             /* [in] */ DWORD_PTR dwUserID,
  443.             /* [in] */ DWORD SurfaceIndex,
  444.             /* [in] */ DWORD SurfaceFlags,
  445.             /* [out] */ IDirect3DSurface9 **lplpSurface);
  446.         
  447.         HRESULT ( STDMETHODCALLTYPE *AdviseNotify )( 
  448.             IVMRSurfaceAllocator9 * This,
  449.             /* [in] */ IVMRSurfaceAllocatorNotify9 *lpIVMRSurfAllocNotify);
  450.         
  451.         END_INTERFACE
  452.     } IVMRSurfaceAllocator9Vtbl;
  453.  
  454.     interface IVMRSurfaceAllocator9
  455.     {
  456.         CONST_VTBL struct IVMRSurfaceAllocator9Vtbl *lpVtbl;
  457.     };
  458.  
  459.     
  460.  
  461. #ifdef COBJMACROS
  462.  
  463.  
  464. #define IVMRSurfaceAllocator9_QueryInterface(This,riid,ppvObject)    \
  465.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  466.  
  467. #define IVMRSurfaceAllocator9_AddRef(This)    \
  468.     (This)->lpVtbl -> AddRef(This)
  469.  
  470. #define IVMRSurfaceAllocator9_Release(This)    \
  471.     (This)->lpVtbl -> Release(This)
  472.  
  473.  
  474. #define IVMRSurfaceAllocator9_InitializeDevice(This,dwUserID,lpAllocInfo,lpNumBuffers)    \
  475.     (This)->lpVtbl -> InitializeDevice(This,dwUserID,lpAllocInfo,lpNumBuffers)
  476.  
  477. #define IVMRSurfaceAllocator9_TerminateDevice(This,dwID)    \
  478.     (This)->lpVtbl -> TerminateDevice(This,dwID)
  479.  
  480. #define IVMRSurfaceAllocator9_GetSurface(This,dwUserID,SurfaceIndex,SurfaceFlags,lplpSurface)    \
  481.     (This)->lpVtbl -> GetSurface(This,dwUserID,SurfaceIndex,SurfaceFlags,lplpSurface)
  482.  
  483. #define IVMRSurfaceAllocator9_AdviseNotify(This,lpIVMRSurfAllocNotify)    \
  484.     (This)->lpVtbl -> AdviseNotify(This,lpIVMRSurfAllocNotify)
  485.  
  486. #endif /* COBJMACROS */
  487.  
  488.  
  489. #endif     /* C style interface */
  490.  
  491.  
  492.  
  493. HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocator9_InitializeDevice_Proxy( 
  494.     IVMRSurfaceAllocator9 * This,
  495.     /* [in] */ DWORD_PTR dwUserID,
  496.     /* [in] */ VMR9AllocationInfo *lpAllocInfo,
  497.     /* [out][in] */ DWORD *lpNumBuffers);
  498.  
  499.  
  500. void __RPC_STUB IVMRSurfaceAllocator9_InitializeDevice_Stub(
  501.     IRpcStubBuffer *This,
  502.     IRpcChannelBuffer *_pRpcChannelBuffer,
  503.     PRPC_MESSAGE _pRpcMessage,
  504.     DWORD *_pdwStubPhase);
  505.  
  506.  
  507. HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocator9_TerminateDevice_Proxy( 
  508.     IVMRSurfaceAllocator9 * This,
  509.     /* [in] */ DWORD_PTR dwID);
  510.  
  511.  
  512. void __RPC_STUB IVMRSurfaceAllocator9_TerminateDevice_Stub(
  513.     IRpcStubBuffer *This,
  514.     IRpcChannelBuffer *_pRpcChannelBuffer,
  515.     PRPC_MESSAGE _pRpcMessage,
  516.     DWORD *_pdwStubPhase);
  517.  
  518.  
  519. HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocator9_GetSurface_Proxy( 
  520.     IVMRSurfaceAllocator9 * This,
  521.     /* [in] */ DWORD_PTR dwUserID,
  522.     /* [in] */ DWORD SurfaceIndex,
  523.     /* [in] */ DWORD SurfaceFlags,
  524.     /* [out] */ IDirect3DSurface9 **lplpSurface);
  525.  
  526.  
  527. void __RPC_STUB IVMRSurfaceAllocator9_GetSurface_Stub(
  528.     IRpcStubBuffer *This,
  529.     IRpcChannelBuffer *_pRpcChannelBuffer,
  530.     PRPC_MESSAGE _pRpcMessage,
  531.     DWORD *_pdwStubPhase);
  532.  
  533.  
  534. HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocator9_AdviseNotify_Proxy( 
  535.     IVMRSurfaceAllocator9 * This,
  536.     /* [in] */ IVMRSurfaceAllocatorNotify9 *lpIVMRSurfAllocNotify);
  537.  
  538.  
  539. void __RPC_STUB IVMRSurfaceAllocator9_AdviseNotify_Stub(
  540.     IRpcStubBuffer *This,
  541.     IRpcChannelBuffer *_pRpcChannelBuffer,
  542.     PRPC_MESSAGE _pRpcMessage,
  543.     DWORD *_pdwStubPhase);
  544.  
  545.  
  546.  
  547. #endif     /* __IVMRSurfaceAllocator9_INTERFACE_DEFINED__ */
  548.  
  549.  
  550. #ifndef __IVMRSurfaceAllocatorEx9_INTERFACE_DEFINED__
  551. #define __IVMRSurfaceAllocatorEx9_INTERFACE_DEFINED__
  552.  
  553. /* interface IVMRSurfaceAllocatorEx9 */
  554. /* [unique][helpstring][uuid][local][object][local] */ 
  555.  
  556.  
  557. EXTERN_C const IID IID_IVMRSurfaceAllocatorEx9;
  558.  
  559. #if defined(__cplusplus) && !defined(CINTERFACE)
  560.     
  561.     MIDL_INTERFACE("6de9a68a-a928-4522-bf57-655ae3866456")
  562.     IVMRSurfaceAllocatorEx9 : public IVMRSurfaceAllocator9
  563.     {
  564.     public:
  565.         virtual HRESULT STDMETHODCALLTYPE GetSurfaceEx( 
  566.             /* [in] */ DWORD_PTR dwUserID,
  567.             /* [in] */ DWORD SurfaceIndex,
  568.             /* [in] */ DWORD SurfaceFlags,
  569.             /* [out] */ IDirect3DSurface9 **lplpSurface,
  570.             /* [out] */ RECT *lprcDst) = 0;
  571.         
  572.     };
  573.     
  574. #else     /* C style interface */
  575.  
  576.     typedef struct IVMRSurfaceAllocatorEx9Vtbl
  577.     {
  578.         BEGIN_INTERFACE
  579.         
  580.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  581.             IVMRSurfaceAllocatorEx9 * This,
  582.             /* [in] */ REFIID riid,
  583.             /* [iid_is][out] */ void **ppvObject);
  584.         
  585.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  586.             IVMRSurfaceAllocatorEx9 * This);
  587.         
  588.         ULONG ( STDMETHODCALLTYPE *Release )( 
  589.             IVMRSurfaceAllocatorEx9 * This);
  590.         
  591.         HRESULT ( STDMETHODCALLTYPE *InitializeDevice )( 
  592.             IVMRSurfaceAllocatorEx9 * This,
  593.             /* [in] */ DWORD_PTR dwUserID,
  594.             /* [in] */ VMR9AllocationInfo *lpAllocInfo,
  595.             /* [out][in] */ DWORD *lpNumBuffers);
  596.         
  597.         HRESULT ( STDMETHODCALLTYPE *TerminateDevice )( 
  598.             IVMRSurfaceAllocatorEx9 * This,
  599.             /* [in] */ DWORD_PTR dwID);
  600.         
  601.         HRESULT ( STDMETHODCALLTYPE *GetSurface )( 
  602.             IVMRSurfaceAllocatorEx9 * This,
  603.             /* [in] */ DWORD_PTR dwUserID,
  604.             /* [in] */ DWORD SurfaceIndex,
  605.             /* [in] */ DWORD SurfaceFlags,
  606.             /* [out] */ IDirect3DSurface9 **lplpSurface);
  607.         
  608.         HRESULT ( STDMETHODCALLTYPE *AdviseNotify )( 
  609.             IVMRSurfaceAllocatorEx9 * This,
  610.             /* [in] */ IVMRSurfaceAllocatorNotify9 *lpIVMRSurfAllocNotify);
  611.         
  612.         HRESULT ( STDMETHODCALLTYPE *GetSurfaceEx )( 
  613.             IVMRSurfaceAllocatorEx9 * This,
  614.             /* [in] */ DWORD_PTR dwUserID,
  615.             /* [in] */ DWORD SurfaceIndex,
  616.             /* [in] */ DWORD SurfaceFlags,
  617.             /* [out] */ IDirect3DSurface9 **lplpSurface,
  618.             /* [out] */ RECT *lprcDst);
  619.         
  620.         END_INTERFACE
  621.     } IVMRSurfaceAllocatorEx9Vtbl;
  622.  
  623.     interface IVMRSurfaceAllocatorEx9
  624.     {
  625.         CONST_VTBL struct IVMRSurfaceAllocatorEx9Vtbl *lpVtbl;
  626.     };
  627.  
  628.     
  629.  
  630. #ifdef COBJMACROS
  631.  
  632.  
  633. #define IVMRSurfaceAllocatorEx9_QueryInterface(This,riid,ppvObject)    \
  634.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  635.  
  636. #define IVMRSurfaceAllocatorEx9_AddRef(This)    \
  637.     (This)->lpVtbl -> AddRef(This)
  638.  
  639. #define IVMRSurfaceAllocatorEx9_Release(This)    \
  640.     (This)->lpVtbl -> Release(This)
  641.  
  642.  
  643. #define IVMRSurfaceAllocatorEx9_InitializeDevice(This,dwUserID,lpAllocInfo,lpNumBuffers)    \
  644.     (This)->lpVtbl -> InitializeDevice(This,dwUserID,lpAllocInfo,lpNumBuffers)
  645.  
  646. #define IVMRSurfaceAllocatorEx9_TerminateDevice(This,dwID)    \
  647.     (This)->lpVtbl -> TerminateDevice(This,dwID)
  648.  
  649. #define IVMRSurfaceAllocatorEx9_GetSurface(This,dwUserID,SurfaceIndex,SurfaceFlags,lplpSurface)    \
  650.     (This)->lpVtbl -> GetSurface(This,dwUserID,SurfaceIndex,SurfaceFlags,lplpSurface)
  651.  
  652. #define IVMRSurfaceAllocatorEx9_AdviseNotify(This,lpIVMRSurfAllocNotify)    \
  653.     (This)->lpVtbl -> AdviseNotify(This,lpIVMRSurfAllocNotify)
  654.  
  655.  
  656. #define IVMRSurfaceAllocatorEx9_GetSurfaceEx(This,dwUserID,SurfaceIndex,SurfaceFlags,lplpSurface,lprcDst)    \
  657.     (This)->lpVtbl -> GetSurfaceEx(This,dwUserID,SurfaceIndex,SurfaceFlags,lplpSurface,lprcDst)
  658.  
  659. #endif /* COBJMACROS */
  660.  
  661.  
  662. #endif     /* C style interface */
  663.  
  664.  
  665.  
  666. HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorEx9_GetSurfaceEx_Proxy( 
  667.     IVMRSurfaceAllocatorEx9 * This,
  668.     /* [in] */ DWORD_PTR dwUserID,
  669.     /* [in] */ DWORD SurfaceIndex,
  670.     /* [in] */ DWORD SurfaceFlags,
  671.     /* [out] */ IDirect3DSurface9 **lplpSurface,
  672.     /* [out] */ RECT *lprcDst);
  673.  
  674.  
  675. void __RPC_STUB IVMRSurfaceAllocatorEx9_GetSurfaceEx_Stub(
  676.     IRpcStubBuffer *This,
  677.     IRpcChannelBuffer *_pRpcChannelBuffer,
  678.     PRPC_MESSAGE _pRpcMessage,
  679.     DWORD *_pdwStubPhase);
  680.  
  681.  
  682.  
  683. #endif     /* __IVMRSurfaceAllocatorEx9_INTERFACE_DEFINED__ */
  684.  
  685.  
  686. #ifndef __IVMRSurfaceAllocatorNotify9_INTERFACE_DEFINED__
  687. #define __IVMRSurfaceAllocatorNotify9_INTERFACE_DEFINED__
  688.  
  689. /* interface IVMRSurfaceAllocatorNotify9 */
  690. /* [unique][helpstring][uuid][local][object][local] */ 
  691.  
  692.  
  693. EXTERN_C const IID IID_IVMRSurfaceAllocatorNotify9;
  694.  
  695. #if defined(__cplusplus) && !defined(CINTERFACE)
  696.     
  697.     MIDL_INTERFACE("dca3f5df-bb3a-4d03-bd81-84614bfbfa0c")
  698.     IVMRSurfaceAllocatorNotify9 : public IUnknown
  699.     {
  700.     public:
  701.         virtual HRESULT STDMETHODCALLTYPE AdviseSurfaceAllocator( 
  702.             /* [in] */ DWORD_PTR dwUserID,
  703.             /* [in] */ IVMRSurfaceAllocator9 *lpIVRMSurfaceAllocator) = 0;
  704.         
  705.         virtual HRESULT STDMETHODCALLTYPE SetD3DDevice( 
  706.             /* [in] */ IDirect3DDevice9 *lpD3DDevice,
  707.             /* [in] */ HMONITOR hMonitor) = 0;
  708.         
  709.         virtual HRESULT STDMETHODCALLTYPE ChangeD3DDevice( 
  710.             /* [in] */ IDirect3DDevice9 *lpD3DDevice,
  711.             /* [in] */ HMONITOR hMonitor) = 0;
  712.         
  713.         virtual HRESULT STDMETHODCALLTYPE AllocateSurfaceHelper( 
  714.             /* [in] */ VMR9AllocationInfo *lpAllocInfo,
  715.             /* [out][in] */ DWORD *lpNumBuffers,
  716.             /* [out] */ IDirect3DSurface9 **lplpSurface) = 0;
  717.         
  718.         virtual HRESULT STDMETHODCALLTYPE NotifyEvent( 
  719.             /* [in] */ LONG EventCode,
  720.             /* [in] */ LONG_PTR Param1,
  721.             /* [in] */ LONG_PTR Param2) = 0;
  722.         
  723.     };
  724.     
  725. #else     /* C style interface */
  726.  
  727.     typedef struct IVMRSurfaceAllocatorNotify9Vtbl
  728.     {
  729.         BEGIN_INTERFACE
  730.         
  731.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  732.             IVMRSurfaceAllocatorNotify9 * This,
  733.             /* [in] */ REFIID riid,
  734.             /* [iid_is][out] */ void **ppvObject);
  735.         
  736.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  737.             IVMRSurfaceAllocatorNotify9 * This);
  738.         
  739.         ULONG ( STDMETHODCALLTYPE *Release )( 
  740.             IVMRSurfaceAllocatorNotify9 * This);
  741.         
  742.         HRESULT ( STDMETHODCALLTYPE *AdviseSurfaceAllocator )( 
  743.             IVMRSurfaceAllocatorNotify9 * This,
  744.             /* [in] */ DWORD_PTR dwUserID,
  745.             /* [in] */ IVMRSurfaceAllocator9 *lpIVRMSurfaceAllocator);
  746.         
  747.         HRESULT ( STDMETHODCALLTYPE *SetD3DDevice )( 
  748.             IVMRSurfaceAllocatorNotify9 * This,
  749.             /* [in] */ IDirect3DDevice9 *lpD3DDevice,
  750.             /* [in] */ HMONITOR hMonitor);
  751.         
  752.         HRESULT ( STDMETHODCALLTYPE *ChangeD3DDevice )( 
  753.             IVMRSurfaceAllocatorNotify9 * This,
  754.             /* [in] */ IDirect3DDevice9 *lpD3DDevice,
  755.             /* [in] */ HMONITOR hMonitor);
  756.         
  757.         HRESULT ( STDMETHODCALLTYPE *AllocateSurfaceHelper )( 
  758.             IVMRSurfaceAllocatorNotify9 * This,
  759.             /* [in] */ VMR9AllocationInfo *lpAllocInfo,
  760.             /* [out][in] */ DWORD *lpNumBuffers,
  761.             /* [out] */ IDirect3DSurface9 **lplpSurface);
  762.         
  763.         HRESULT ( STDMETHODCALLTYPE *NotifyEvent )( 
  764.             IVMRSurfaceAllocatorNotify9 * This,
  765.             /* [in] */ LONG EventCode,
  766.             /* [in] */ LONG_PTR Param1,
  767.             /* [in] */ LONG_PTR Param2);
  768.         
  769.         END_INTERFACE
  770.     } IVMRSurfaceAllocatorNotify9Vtbl;
  771.  
  772.     interface IVMRSurfaceAllocatorNotify9
  773.     {
  774.         CONST_VTBL struct IVMRSurfaceAllocatorNotify9Vtbl *lpVtbl;
  775.     };
  776.  
  777.     
  778.  
  779. #ifdef COBJMACROS
  780.  
  781.  
  782. #define IVMRSurfaceAllocatorNotify9_QueryInterface(This,riid,ppvObject)    \
  783.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  784.  
  785. #define IVMRSurfaceAllocatorNotify9_AddRef(This)    \
  786.     (This)->lpVtbl -> AddRef(This)
  787.  
  788. #define IVMRSurfaceAllocatorNotify9_Release(This)    \
  789.     (This)->lpVtbl -> Release(This)
  790.  
  791.  
  792. #define IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator(This,dwUserID,lpIVRMSurfaceAllocator)    \
  793.     (This)->lpVtbl -> AdviseSurfaceAllocator(This,dwUserID,lpIVRMSurfaceAllocator)
  794.  
  795. #define IVMRSurfaceAllocatorNotify9_SetD3DDevice(This,lpD3DDevice,hMonitor)    \
  796.     (This)->lpVtbl -> SetD3DDevice(This,lpD3DDevice,hMonitor)
  797.  
  798. #define IVMRSurfaceAllocatorNotify9_ChangeD3DDevice(This,lpD3DDevice,hMonitor)    \
  799.     (This)->lpVtbl -> ChangeD3DDevice(This,lpD3DDevice,hMonitor)
  800.  
  801. #define IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper(This,lpAllocInfo,lpNumBuffers,lplpSurface)    \
  802.     (This)->lpVtbl -> AllocateSurfaceHelper(This,lpAllocInfo,lpNumBuffers,lplpSurface)
  803.  
  804. #define IVMRSurfaceAllocatorNotify9_NotifyEvent(This,EventCode,Param1,Param2)    \
  805.     (This)->lpVtbl -> NotifyEvent(This,EventCode,Param1,Param2)
  806.  
  807. #endif /* COBJMACROS */
  808.  
  809.  
  810. #endif     /* C style interface */
  811.  
  812.  
  813.  
  814. HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator_Proxy( 
  815.     IVMRSurfaceAllocatorNotify9 * This,
  816.     /* [in] */ DWORD_PTR dwUserID,
  817.     /* [in] */ IVMRSurfaceAllocator9 *lpIVRMSurfaceAllocator);
  818.  
  819.  
  820. void __RPC_STUB IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator_Stub(
  821.     IRpcStubBuffer *This,
  822.     IRpcChannelBuffer *_pRpcChannelBuffer,
  823.     PRPC_MESSAGE _pRpcMessage,
  824.     DWORD *_pdwStubPhase);
  825.  
  826.  
  827. HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorNotify9_SetD3DDevice_Proxy( 
  828.     IVMRSurfaceAllocatorNotify9 * This,
  829.     /* [in] */ IDirect3DDevice9 *lpD3DDevice,
  830.     /* [in] */ HMONITOR hMonitor);
  831.  
  832.  
  833. void __RPC_STUB IVMRSurfaceAllocatorNotify9_SetD3DDevice_Stub(
  834.     IRpcStubBuffer *This,
  835.     IRpcChannelBuffer *_pRpcChannelBuffer,
  836.     PRPC_MESSAGE _pRpcMessage,
  837.     DWORD *_pdwStubPhase);
  838.  
  839.  
  840. HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorNotify9_ChangeD3DDevice_Proxy( 
  841.     IVMRSurfaceAllocatorNotify9 * This,
  842.     /* [in] */ IDirect3DDevice9 *lpD3DDevice,
  843.     /* [in] */ HMONITOR hMonitor);
  844.  
  845.  
  846. void __RPC_STUB IVMRSurfaceAllocatorNotify9_ChangeD3DDevice_Stub(
  847.     IRpcStubBuffer *This,
  848.     IRpcChannelBuffer *_pRpcChannelBuffer,
  849.     PRPC_MESSAGE _pRpcMessage,
  850.     DWORD *_pdwStubPhase);
  851.  
  852.  
  853. HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper_Proxy( 
  854.     IVMRSurfaceAllocatorNotify9 * This,
  855.     /* [in] */ VMR9AllocationInfo *lpAllocInfo,
  856.     /* [out][in] */ DWORD *lpNumBuffers,
  857.     /* [out] */ IDirect3DSurface9 **lplpSurface);
  858.  
  859.  
  860. void __RPC_STUB IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper_Stub(
  861.     IRpcStubBuffer *This,
  862.     IRpcChannelBuffer *_pRpcChannelBuffer,
  863.     PRPC_MESSAGE _pRpcMessage,
  864.     DWORD *_pdwStubPhase);
  865.  
  866.  
  867. HRESULT STDMETHODCALLTYPE IVMRSurfaceAllocatorNotify9_NotifyEvent_Proxy( 
  868.     IVMRSurfaceAllocatorNotify9 * This,
  869.     /* [in] */ LONG EventCode,
  870.     /* [in] */ LONG_PTR Param1,
  871.     /* [in] */ LONG_PTR Param2);
  872.  
  873.  
  874. void __RPC_STUB IVMRSurfaceAllocatorNotify9_NotifyEvent_Stub(
  875.     IRpcStubBuffer *This,
  876.     IRpcChannelBuffer *_pRpcChannelBuffer,
  877.     PRPC_MESSAGE _pRpcMessage,
  878.     DWORD *_pdwStubPhase);
  879.  
  880.  
  881.  
  882. #endif     /* __IVMRSurfaceAllocatorNotify9_INTERFACE_DEFINED__ */
  883.  
  884.  
  885. /* interface __MIDL_itf_vmr9_0012 */
  886. /* [local] */ 
  887.  
  888. typedef /* [public] */ 
  889. enum __MIDL___MIDL_itf_vmr9_0012_0001
  890.     {    VMR9ARMode_None    = 0,
  891.     VMR9ARMode_LetterBox    = VMR9ARMode_None + 1
  892.     }     VMR9AspectRatioMode;
  893.  
  894.  
  895.  
  896. extern RPC_IF_HANDLE __MIDL_itf_vmr9_0012_v0_0_c_ifspec;
  897. extern RPC_IF_HANDLE __MIDL_itf_vmr9_0012_v0_0_s_ifspec;
  898.  
  899. #ifndef __IVMRWindowlessControl9_INTERFACE_DEFINED__
  900. #define __IVMRWindowlessControl9_INTERFACE_DEFINED__
  901.  
  902. /* interface IVMRWindowlessControl9 */
  903. /* [unique][helpstring][uuid][local][object][local] */ 
  904.  
  905.  
  906. EXTERN_C const IID IID_IVMRWindowlessControl9;
  907.  
  908. #if defined(__cplusplus) && !defined(CINTERFACE)
  909.     
  910.     MIDL_INTERFACE("8f537d09-f85e-4414-b23b-502e54c79927")
  911.     IVMRWindowlessControl9 : public IUnknown
  912.     {
  913.     public:
  914.         virtual HRESULT STDMETHODCALLTYPE GetNativeVideoSize( 
  915.             /* [out] */ LONG *lpWidth,
  916.             /* [out] */ LONG *lpHeight,
  917.             /* [out] */ LONG *lpARWidth,
  918.             /* [out] */ LONG *lpARHeight) = 0;
  919.         
  920.         virtual HRESULT STDMETHODCALLTYPE GetMinIdealVideoSize( 
  921.             /* [out] */ LONG *lpWidth,
  922.             /* [out] */ LONG *lpHeight) = 0;
  923.         
  924.         virtual HRESULT STDMETHODCALLTYPE GetMaxIdealVideoSize( 
  925.             /* [out] */ LONG *lpWidth,
  926.             /* [out] */ LONG *lpHeight) = 0;
  927.         
  928.         virtual HRESULT STDMETHODCALLTYPE SetVideoPosition( 
  929.             /* [in] */ const LPRECT lpSRCRect,
  930.             /* [in] */ const LPRECT lpDSTRect) = 0;
  931.         
  932.         virtual HRESULT STDMETHODCALLTYPE GetVideoPosition( 
  933.             /* [out] */ LPRECT lpSRCRect,
  934.             /* [out] */ LPRECT lpDSTRect) = 0;
  935.         
  936.         virtual HRESULT STDMETHODCALLTYPE GetAspectRatioMode( 
  937.             /* [out] */ DWORD *lpAspectRatioMode) = 0;
  938.         
  939.         virtual HRESULT STDMETHODCALLTYPE SetAspectRatioMode( 
  940.             /* [in] */ DWORD AspectRatioMode) = 0;
  941.         
  942.         virtual HRESULT STDMETHODCALLTYPE SetVideoClippingWindow( 
  943.             /* [in] */ HWND hwnd) = 0;
  944.         
  945.         virtual HRESULT STDMETHODCALLTYPE RepaintVideo( 
  946.             /* [in] */ HWND hwnd,
  947.             /* [in] */ HDC hdc) = 0;
  948.         
  949.         virtual HRESULT STDMETHODCALLTYPE DisplayModeChanged( void) = 0;
  950.         
  951.         virtual HRESULT STDMETHODCALLTYPE GetCurrentImage( 
  952.             /* [out] */ BYTE **lpDib) = 0;
  953.         
  954.         virtual HRESULT STDMETHODCALLTYPE SetBorderColor( 
  955.             /* [in] */ COLORREF Clr) = 0;
  956.         
  957.         virtual HRESULT STDMETHODCALLTYPE GetBorderColor( 
  958.             /* [out] */ COLORREF *lpClr) = 0;
  959.         
  960.     };
  961.     
  962. #else     /* C style interface */
  963.  
  964.     typedef struct IVMRWindowlessControl9Vtbl
  965.     {
  966.         BEGIN_INTERFACE
  967.         
  968.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  969.             IVMRWindowlessControl9 * This,
  970.             /* [in] */ REFIID riid,
  971.             /* [iid_is][out] */ void **ppvObject);
  972.         
  973.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  974.             IVMRWindowlessControl9 * This);
  975.         
  976.         ULONG ( STDMETHODCALLTYPE *Release )( 
  977.             IVMRWindowlessControl9 * This);
  978.         
  979.         HRESULT ( STDMETHODCALLTYPE *GetNativeVideoSize )( 
  980.             IVMRWindowlessControl9 * This,
  981.             /* [out] */ LONG *lpWidth,
  982.             /* [out] */ LONG *lpHeight,
  983.             /* [out] */ LONG *lpARWidth,
  984.             /* [out] */ LONG *lpARHeight);
  985.         
  986.         HRESULT ( STDMETHODCALLTYPE *GetMinIdealVideoSize )( 
  987.             IVMRWindowlessControl9 * This,
  988.             /* [out] */ LONG *lpWidth,
  989.             /* [out] */ LONG *lpHeight);
  990.         
  991.         HRESULT ( STDMETHODCALLTYPE *GetMaxIdealVideoSize )( 
  992.             IVMRWindowlessControl9 * This,
  993.             /* [out] */ LONG *lpWidth,
  994.             /* [out] */ LONG *lpHeight);
  995.         
  996.         HRESULT ( STDMETHODCALLTYPE *SetVideoPosition )( 
  997.             IVMRWindowlessControl9 * This,
  998.             /* [in] */ const LPRECT lpSRCRect,
  999.             /* [in] */ const LPRECT lpDSTRect);
  1000.         
  1001.         HRESULT ( STDMETHODCALLTYPE *GetVideoPosition )( 
  1002.             IVMRWindowlessControl9 * This,
  1003.             /* [out] */ LPRECT lpSRCRect,
  1004.             /* [out] */ LPRECT lpDSTRect);
  1005.         
  1006.         HRESULT ( STDMETHODCALLTYPE *GetAspectRatioMode )( 
  1007.             IVMRWindowlessControl9 * This,
  1008.             /* [out] */ DWORD *lpAspectRatioMode);
  1009.         
  1010.         HRESULT ( STDMETHODCALLTYPE *SetAspectRatioMode )( 
  1011.             IVMRWindowlessControl9 * This,
  1012.             /* [in] */ DWORD AspectRatioMode);
  1013.         
  1014.         HRESULT ( STDMETHODCALLTYPE *SetVideoClippingWindow )( 
  1015.             IVMRWindowlessControl9 * This,
  1016.             /* [in] */ HWND hwnd);
  1017.         
  1018.         HRESULT ( STDMETHODCALLTYPE *RepaintVideo )( 
  1019.             IVMRWindowlessControl9 * This,
  1020.             /* [in] */ HWND hwnd,
  1021.             /* [in] */ HDC hdc);
  1022.         
  1023.         HRESULT ( STDMETHODCALLTYPE *DisplayModeChanged )( 
  1024.             IVMRWindowlessControl9 * This);
  1025.         
  1026.         HRESULT ( STDMETHODCALLTYPE *GetCurrentImage )( 
  1027.             IVMRWindowlessControl9 * This,
  1028.             /* [out] */ BYTE **lpDib);
  1029.         
  1030.         HRESULT ( STDMETHODCALLTYPE *SetBorderColor )( 
  1031.             IVMRWindowlessControl9 * This,
  1032.             /* [in] */ COLORREF Clr);
  1033.         
  1034.         HRESULT ( STDMETHODCALLTYPE *GetBorderColor )( 
  1035.             IVMRWindowlessControl9 * This,
  1036.             /* [out] */ COLORREF *lpClr);
  1037.         
  1038.         END_INTERFACE
  1039.     } IVMRWindowlessControl9Vtbl;
  1040.  
  1041.     interface IVMRWindowlessControl9
  1042.     {
  1043.         CONST_VTBL struct IVMRWindowlessControl9Vtbl *lpVtbl;
  1044.     };
  1045.  
  1046.     
  1047.  
  1048. #ifdef COBJMACROS
  1049.  
  1050.  
  1051. #define IVMRWindowlessControl9_QueryInterface(This,riid,ppvObject)    \
  1052.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1053.  
  1054. #define IVMRWindowlessControl9_AddRef(This)    \
  1055.     (This)->lpVtbl -> AddRef(This)
  1056.  
  1057. #define IVMRWindowlessControl9_Release(This)    \
  1058.     (This)->lpVtbl -> Release(This)
  1059.  
  1060.  
  1061. #define IVMRWindowlessControl9_GetNativeVideoSize(This,lpWidth,lpHeight,lpARWidth,lpARHeight)    \
  1062.     (This)->lpVtbl -> GetNativeVideoSize(This,lpWidth,lpHeight,lpARWidth,lpARHeight)
  1063.  
  1064. #define IVMRWindowlessControl9_GetMinIdealVideoSize(This,lpWidth,lpHeight)    \
  1065.     (This)->lpVtbl -> GetMinIdealVideoSize(This,lpWidth,lpHeight)
  1066.  
  1067. #define IVMRWindowlessControl9_GetMaxIdealVideoSize(This,lpWidth,lpHeight)    \
  1068.     (This)->lpVtbl -> GetMaxIdealVideoSize(This,lpWidth,lpHeight)
  1069.  
  1070. #define IVMRWindowlessControl9_SetVideoPosition(This,lpSRCRect,lpDSTRect)    \
  1071.     (This)->lpVtbl -> SetVideoPosition(This,lpSRCRect,lpDSTRect)
  1072.  
  1073. #define IVMRWindowlessControl9_GetVideoPosition(This,lpSRCRect,lpDSTRect)    \
  1074.     (This)->lpVtbl -> GetVideoPosition(This,lpSRCRect,lpDSTRect)
  1075.  
  1076. #define IVMRWindowlessControl9_GetAspectRatioMode(This,lpAspectRatioMode)    \
  1077.     (This)->lpVtbl -> GetAspectRatioMode(This,lpAspectRatioMode)
  1078.  
  1079. #define IVMRWindowlessControl9_SetAspectRatioMode(This,AspectRatioMode)    \
  1080.     (This)->lpVtbl -> SetAspectRatioMode(This,AspectRatioMode)
  1081.  
  1082. #define IVMRWindowlessControl9_SetVideoClippingWindow(This,hwnd)    \
  1083.     (This)->lpVtbl -> SetVideoClippingWindow(This,hwnd)
  1084.  
  1085. #define IVMRWindowlessControl9_RepaintVideo(This,hwnd,hdc)    \
  1086.     (This)->lpVtbl -> RepaintVideo(This,hwnd,hdc)
  1087.  
  1088. #define IVMRWindowlessControl9_DisplayModeChanged(This)    \
  1089.     (This)->lpVtbl -> DisplayModeChanged(This)
  1090.  
  1091. #define IVMRWindowlessControl9_GetCurrentImage(This,lpDib)    \
  1092.     (This)->lpVtbl -> GetCurrentImage(This,lpDib)
  1093.  
  1094. #define IVMRWindowlessControl9_SetBorderColor(This,Clr)    \
  1095.     (This)->lpVtbl -> SetBorderColor(This,Clr)
  1096.  
  1097. #define IVMRWindowlessControl9_GetBorderColor(This,lpClr)    \
  1098.     (This)->lpVtbl -> GetBorderColor(This,lpClr)
  1099.  
  1100. #endif /* COBJMACROS */
  1101.  
  1102.  
  1103. #endif     /* C style interface */
  1104.  
  1105.  
  1106.  
  1107. HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetNativeVideoSize_Proxy( 
  1108.     IVMRWindowlessControl9 * This,
  1109.     /* [out] */ LONG *lpWidth,
  1110.     /* [out] */ LONG *lpHeight,
  1111.     /* [out] */ LONG *lpARWidth,
  1112.     /* [out] */ LONG *lpARHeight);
  1113.  
  1114.  
  1115. void __RPC_STUB IVMRWindowlessControl9_GetNativeVideoSize_Stub(
  1116.     IRpcStubBuffer *This,
  1117.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1118.     PRPC_MESSAGE _pRpcMessage,
  1119.     DWORD *_pdwStubPhase);
  1120.  
  1121.  
  1122. HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetMinIdealVideoSize_Proxy( 
  1123.     IVMRWindowlessControl9 * This,
  1124.     /* [out] */ LONG *lpWidth,
  1125.     /* [out] */ LONG *lpHeight);
  1126.  
  1127.  
  1128. void __RPC_STUB IVMRWindowlessControl9_GetMinIdealVideoSize_Stub(
  1129.     IRpcStubBuffer *This,
  1130.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1131.     PRPC_MESSAGE _pRpcMessage,
  1132.     DWORD *_pdwStubPhase);
  1133.  
  1134.  
  1135. HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetMaxIdealVideoSize_Proxy( 
  1136.     IVMRWindowlessControl9 * This,
  1137.     /* [out] */ LONG *lpWidth,
  1138.     /* [out] */ LONG *lpHeight);
  1139.  
  1140.  
  1141. void __RPC_STUB IVMRWindowlessControl9_GetMaxIdealVideoSize_Stub(
  1142.     IRpcStubBuffer *This,
  1143.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1144.     PRPC_MESSAGE _pRpcMessage,
  1145.     DWORD *_pdwStubPhase);
  1146.  
  1147.  
  1148. HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_SetVideoPosition_Proxy( 
  1149.     IVMRWindowlessControl9 * This,
  1150.     /* [in] */ const LPRECT lpSRCRect,
  1151.     /* [in] */ const LPRECT lpDSTRect);
  1152.  
  1153.  
  1154. void __RPC_STUB IVMRWindowlessControl9_SetVideoPosition_Stub(
  1155.     IRpcStubBuffer *This,
  1156.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1157.     PRPC_MESSAGE _pRpcMessage,
  1158.     DWORD *_pdwStubPhase);
  1159.  
  1160.  
  1161. HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetVideoPosition_Proxy( 
  1162.     IVMRWindowlessControl9 * This,
  1163.     /* [out] */ LPRECT lpSRCRect,
  1164.     /* [out] */ LPRECT lpDSTRect);
  1165.  
  1166.  
  1167. void __RPC_STUB IVMRWindowlessControl9_GetVideoPosition_Stub(
  1168.     IRpcStubBuffer *This,
  1169.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1170.     PRPC_MESSAGE _pRpcMessage,
  1171.     DWORD *_pdwStubPhase);
  1172.  
  1173.  
  1174. HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetAspectRatioMode_Proxy( 
  1175.     IVMRWindowlessControl9 * This,
  1176.     /* [out] */ DWORD *lpAspectRatioMode);
  1177.  
  1178.  
  1179. void __RPC_STUB IVMRWindowlessControl9_GetAspectRatioMode_Stub(
  1180.     IRpcStubBuffer *This,
  1181.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1182.     PRPC_MESSAGE _pRpcMessage,
  1183.     DWORD *_pdwStubPhase);
  1184.  
  1185.  
  1186. HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_SetAspectRatioMode_Proxy( 
  1187.     IVMRWindowlessControl9 * This,
  1188.     /* [in] */ DWORD AspectRatioMode);
  1189.  
  1190.  
  1191. void __RPC_STUB IVMRWindowlessControl9_SetAspectRatioMode_Stub(
  1192.     IRpcStubBuffer *This,
  1193.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1194.     PRPC_MESSAGE _pRpcMessage,
  1195.     DWORD *_pdwStubPhase);
  1196.  
  1197.  
  1198. HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_SetVideoClippingWindow_Proxy( 
  1199.     IVMRWindowlessControl9 * This,
  1200.     /* [in] */ HWND hwnd);
  1201.  
  1202.  
  1203. void __RPC_STUB IVMRWindowlessControl9_SetVideoClippingWindow_Stub(
  1204.     IRpcStubBuffer *This,
  1205.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1206.     PRPC_MESSAGE _pRpcMessage,
  1207.     DWORD *_pdwStubPhase);
  1208.  
  1209.  
  1210. HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_RepaintVideo_Proxy( 
  1211.     IVMRWindowlessControl9 * This,
  1212.     /* [in] */ HWND hwnd,
  1213.     /* [in] */ HDC hdc);
  1214.  
  1215.  
  1216. void __RPC_STUB IVMRWindowlessControl9_RepaintVideo_Stub(
  1217.     IRpcStubBuffer *This,
  1218.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1219.     PRPC_MESSAGE _pRpcMessage,
  1220.     DWORD *_pdwStubPhase);
  1221.  
  1222.  
  1223. HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_DisplayModeChanged_Proxy( 
  1224.     IVMRWindowlessControl9 * This);
  1225.  
  1226.  
  1227. void __RPC_STUB IVMRWindowlessControl9_DisplayModeChanged_Stub(
  1228.     IRpcStubBuffer *This,
  1229.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1230.     PRPC_MESSAGE _pRpcMessage,
  1231.     DWORD *_pdwStubPhase);
  1232.  
  1233.  
  1234. HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetCurrentImage_Proxy( 
  1235.     IVMRWindowlessControl9 * This,
  1236.     /* [out] */ BYTE **lpDib);
  1237.  
  1238.  
  1239. void __RPC_STUB IVMRWindowlessControl9_GetCurrentImage_Stub(
  1240.     IRpcStubBuffer *This,
  1241.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1242.     PRPC_MESSAGE _pRpcMessage,
  1243.     DWORD *_pdwStubPhase);
  1244.  
  1245.  
  1246. HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_SetBorderColor_Proxy( 
  1247.     IVMRWindowlessControl9 * This,
  1248.     /* [in] */ COLORREF Clr);
  1249.  
  1250.  
  1251. void __RPC_STUB IVMRWindowlessControl9_SetBorderColor_Stub(
  1252.     IRpcStubBuffer *This,
  1253.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1254.     PRPC_MESSAGE _pRpcMessage,
  1255.     DWORD *_pdwStubPhase);
  1256.  
  1257.  
  1258. HRESULT STDMETHODCALLTYPE IVMRWindowlessControl9_GetBorderColor_Proxy( 
  1259.     IVMRWindowlessControl9 * This,
  1260.     /* [out] */ COLORREF *lpClr);
  1261.  
  1262.  
  1263. void __RPC_STUB IVMRWindowlessControl9_GetBorderColor_Stub(
  1264.     IRpcStubBuffer *This,
  1265.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1266.     PRPC_MESSAGE _pRpcMessage,
  1267.     DWORD *_pdwStubPhase);
  1268.  
  1269.  
  1270.  
  1271. #endif     /* __IVMRWindowlessControl9_INTERFACE_DEFINED__ */
  1272.  
  1273.  
  1274. /* interface __MIDL_itf_vmr9_0013 */
  1275. /* [local] */ 
  1276.  
  1277. typedef /* [public] */ 
  1278. enum __MIDL___MIDL_itf_vmr9_0013_0001
  1279.     {    MixerPref9_NoDecimation    = 0x1,
  1280.     MixerPref9_DecimateOutput    = 0x2,
  1281.     MixerPref9_ARAdjustXorY    = 0x4,
  1282.     MixerPref9_NonSquareMixing    = 0x8,
  1283.     MixerPref9_DecimateMask    = 0xf,
  1284.     MixerPref9_BiLinearFiltering    = 0x10,
  1285.     MixerPref9_PointFiltering    = 0x20,
  1286.     MixerPref9_AnisotropicFiltering    = 0x40,
  1287.     MixerPref9_PyramidalQuadFiltering    = 0x80,
  1288.     MixerPref9_GaussianQuadFiltering    = 0x100,
  1289.     MixerPref9_FilteringReserved    = 0xe00,
  1290.     MixerPref9_FilteringMask    = 0xff0,
  1291.     MixerPref9_RenderTargetRGB    = 0x1000,
  1292.     MixerPref9_RenderTargetYUV    = 0x2000,
  1293.     MixerPref9_RenderTargetReserved    = 0xfc000,
  1294.     MixerPref9_RenderTargetMask    = 0xff000,
  1295.     MixerPref9_DynamicSwitchToBOB    = 0x100000,
  1296.     MixerPref9_DynamicDecimateBy2    = 0x200000,
  1297.     MixerPref9_DynamicReserved    = 0xc00000,
  1298.     MixerPref9_DynamicMask    = 0xf00000
  1299.     }     VMR9MixerPrefs;
  1300.  
  1301. typedef struct _VMR9NormalizedRect
  1302.     {
  1303.     float left;
  1304.     float top;
  1305.     float right;
  1306.     float bottom;
  1307.     }     VMR9NormalizedRect;
  1308.  
  1309. typedef /* [public][public][public] */ 
  1310. enum __MIDL___MIDL_itf_vmr9_0013_0002
  1311.     {    ProcAmpControl9_Brightness    = 0x1,
  1312.     ProcAmpControl9_Contrast    = 0x2,
  1313.     ProcAmpControl9_Hue    = 0x4,
  1314.     ProcAmpControl9_Saturation    = 0x8,
  1315.     ProcAmpControl9_Mask    = 0xf
  1316.     }     VMR9ProcAmpControlFlags;
  1317.  
  1318. typedef struct _VMR9ProcAmpControl
  1319.     {
  1320.     DWORD dwSize;
  1321.     DWORD dwFlags;
  1322.     float Brightness;
  1323.     float Contrast;
  1324.     float Hue;
  1325.     float Saturation;
  1326.     }     VMR9ProcAmpControl;
  1327.  
  1328. typedef struct _VMR9ProcAmpControlRange
  1329.     {
  1330.     DWORD dwSize;
  1331.     VMR9ProcAmpControlFlags dwProperty;
  1332.     float MinValue;
  1333.     float MaxValue;
  1334.     float DefaultValue;
  1335.     float StepSize;
  1336.     }     VMR9ProcAmpControlRange;
  1337.  
  1338.  
  1339.  
  1340. extern RPC_IF_HANDLE __MIDL_itf_vmr9_0013_v0_0_c_ifspec;
  1341. extern RPC_IF_HANDLE __MIDL_itf_vmr9_0013_v0_0_s_ifspec;
  1342.  
  1343. #ifndef __IVMRMixerControl9_INTERFACE_DEFINED__
  1344. #define __IVMRMixerControl9_INTERFACE_DEFINED__
  1345.  
  1346. /* interface IVMRMixerControl9 */
  1347. /* [unique][helpstring][uuid][local][object][local] */ 
  1348.  
  1349.  
  1350. EXTERN_C const IID IID_IVMRMixerControl9;
  1351.  
  1352. #if defined(__cplusplus) && !defined(CINTERFACE)
  1353.     
  1354.     MIDL_INTERFACE("1a777eaa-47c8-4930-b2c9-8fee1c1b0f3b")
  1355.     IVMRMixerControl9 : public IUnknown
  1356.     {
  1357.     public:
  1358.         virtual HRESULT STDMETHODCALLTYPE SetAlpha( 
  1359.             /* [in] */ DWORD dwStreamID,
  1360.             /* [in] */ float Alpha) = 0;
  1361.         
  1362.         virtual HRESULT STDMETHODCALLTYPE GetAlpha( 
  1363.             /* [in] */ DWORD dwStreamID,
  1364.             /* [out] */ float *pAlpha) = 0;
  1365.         
  1366.         virtual HRESULT STDMETHODCALLTYPE SetZOrder( 
  1367.             /* [in] */ DWORD dwStreamID,
  1368.             /* [in] */ DWORD dwZ) = 0;
  1369.         
  1370.         virtual HRESULT STDMETHODCALLTYPE GetZOrder( 
  1371.             /* [in] */ DWORD dwStreamID,
  1372.             /* [out] */ DWORD *pZ) = 0;
  1373.         
  1374.         virtual HRESULT STDMETHODCALLTYPE SetOutputRect( 
  1375.             /* [in] */ DWORD dwStreamID,
  1376.             /* [in] */ const VMR9NormalizedRect *pRect) = 0;
  1377.         
  1378.         virtual HRESULT STDMETHODCALLTYPE GetOutputRect( 
  1379.             /* [in] */ DWORD dwStreamID,
  1380.             /* [out] */ VMR9NormalizedRect *pRect) = 0;
  1381.         
  1382.         virtual HRESULT STDMETHODCALLTYPE SetBackgroundClr( 
  1383.             /* [in] */ COLORREF ClrBkg) = 0;
  1384.         
  1385.         virtual HRESULT STDMETHODCALLTYPE GetBackgroundClr( 
  1386.             /* [in] */ COLORREF *lpClrBkg) = 0;
  1387.         
  1388.         virtual HRESULT STDMETHODCALLTYPE SetMixingPrefs( 
  1389.             /* [in] */ DWORD dwMixerPrefs) = 0;
  1390.         
  1391.         virtual HRESULT STDMETHODCALLTYPE GetMixingPrefs( 
  1392.             /* [out] */ DWORD *pdwMixerPrefs) = 0;
  1393.         
  1394.         virtual HRESULT STDMETHODCALLTYPE SetProcAmpControl( 
  1395.             /* [in] */ DWORD dwStreamID,
  1396.             /* [in] */ VMR9ProcAmpControl *lpClrControl) = 0;
  1397.         
  1398.         virtual HRESULT STDMETHODCALLTYPE GetProcAmpControl( 
  1399.             /* [in] */ DWORD dwStreamID,
  1400.             /* [out][in] */ VMR9ProcAmpControl *lpClrControl) = 0;
  1401.         
  1402.         virtual HRESULT STDMETHODCALLTYPE GetProcAmpControlRange( 
  1403.             /* [in] */ DWORD dwStreamID,
  1404.             /* [out][in] */ VMR9ProcAmpControlRange *lpClrControl) = 0;
  1405.         
  1406.     };
  1407.     
  1408. #else     /* C style interface */
  1409.  
  1410.     typedef struct IVMRMixerControl9Vtbl
  1411.     {
  1412.         BEGIN_INTERFACE
  1413.         
  1414.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1415.             IVMRMixerControl9 * This,
  1416.             /* [in] */ REFIID riid,
  1417.             /* [iid_is][out] */ void **ppvObject);
  1418.         
  1419.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1420.             IVMRMixerControl9 * This);
  1421.         
  1422.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1423.             IVMRMixerControl9 * This);
  1424.         
  1425.         HRESULT ( STDMETHODCALLTYPE *SetAlpha )( 
  1426.             IVMRMixerControl9 * This,
  1427.             /* [in] */ DWORD dwStreamID,
  1428.             /* [in] */ float Alpha);
  1429.         
  1430.         HRESULT ( STDMETHODCALLTYPE *GetAlpha )( 
  1431.             IVMRMixerControl9 * This,
  1432.             /* [in] */ DWORD dwStreamID,
  1433.             /* [out] */ float *pAlpha);
  1434.         
  1435.         HRESULT ( STDMETHODCALLTYPE *SetZOrder )( 
  1436.             IVMRMixerControl9 * This,
  1437.             /* [in] */ DWORD dwStreamID,
  1438.             /* [in] */ DWORD dwZ);
  1439.         
  1440.         HRESULT ( STDMETHODCALLTYPE *GetZOrder )( 
  1441.             IVMRMixerControl9 * This,
  1442.             /* [in] */ DWORD dwStreamID,
  1443.             /* [out] */ DWORD *pZ);
  1444.         
  1445.         HRESULT ( STDMETHODCALLTYPE *SetOutputRect )( 
  1446.             IVMRMixerControl9 * This,
  1447.             /* [in] */ DWORD dwStreamID,
  1448.             /* [in] */ const VMR9NormalizedRect *pRect);
  1449.         
  1450.         HRESULT ( STDMETHODCALLTYPE *GetOutputRect )( 
  1451.             IVMRMixerControl9 * This,
  1452.             /* [in] */ DWORD dwStreamID,
  1453.             /* [out] */ VMR9NormalizedRect *pRect);
  1454.         
  1455.         HRESULT ( STDMETHODCALLTYPE *SetBackgroundClr )( 
  1456.             IVMRMixerControl9 * This,
  1457.             /* [in] */ COLORREF ClrBkg);
  1458.         
  1459.         HRESULT ( STDMETHODCALLTYPE *GetBackgroundClr )( 
  1460.             IVMRMixerControl9 * This,
  1461.             /* [in] */ COLORREF *lpClrBkg);
  1462.         
  1463.         HRESULT ( STDMETHODCALLTYPE *SetMixingPrefs )( 
  1464.             IVMRMixerControl9 * This,
  1465.             /* [in] */ DWORD dwMixerPrefs);
  1466.         
  1467.         HRESULT ( STDMETHODCALLTYPE *GetMixingPrefs )( 
  1468.             IVMRMixerControl9 * This,
  1469.             /* [out] */ DWORD *pdwMixerPrefs);
  1470.         
  1471.         HRESULT ( STDMETHODCALLTYPE *SetProcAmpControl )( 
  1472.             IVMRMixerControl9 * This,
  1473.             /* [in] */ DWORD dwStreamID,
  1474.             /* [in] */ VMR9ProcAmpControl *lpClrControl);
  1475.         
  1476.         HRESULT ( STDMETHODCALLTYPE *GetProcAmpControl )( 
  1477.             IVMRMixerControl9 * This,
  1478.             /* [in] */ DWORD dwStreamID,
  1479.             /* [out][in] */ VMR9ProcAmpControl *lpClrControl);
  1480.         
  1481.         HRESULT ( STDMETHODCALLTYPE *GetProcAmpControlRange )( 
  1482.             IVMRMixerControl9 * This,
  1483.             /* [in] */ DWORD dwStreamID,
  1484.             /* [out][in] */ VMR9ProcAmpControlRange *lpClrControl);
  1485.         
  1486.         END_INTERFACE
  1487.     } IVMRMixerControl9Vtbl;
  1488.  
  1489.     interface IVMRMixerControl9
  1490.     {
  1491.         CONST_VTBL struct IVMRMixerControl9Vtbl *lpVtbl;
  1492.     };
  1493.  
  1494.     
  1495.  
  1496. #ifdef COBJMACROS
  1497.  
  1498.  
  1499. #define IVMRMixerControl9_QueryInterface(This,riid,ppvObject)    \
  1500.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1501.  
  1502. #define IVMRMixerControl9_AddRef(This)    \
  1503.     (This)->lpVtbl -> AddRef(This)
  1504.  
  1505. #define IVMRMixerControl9_Release(This)    \
  1506.     (This)->lpVtbl -> Release(This)
  1507.  
  1508.  
  1509. #define IVMRMixerControl9_SetAlpha(This,dwStreamID,Alpha)    \
  1510.     (This)->lpVtbl -> SetAlpha(This,dwStreamID,Alpha)
  1511.  
  1512. #define IVMRMixerControl9_GetAlpha(This,dwStreamID,pAlpha)    \
  1513.     (This)->lpVtbl -> GetAlpha(This,dwStreamID,pAlpha)
  1514.  
  1515. #define IVMRMixerControl9_SetZOrder(This,dwStreamID,dwZ)    \
  1516.     (This)->lpVtbl -> SetZOrder(This,dwStreamID,dwZ)
  1517.  
  1518. #define IVMRMixerControl9_GetZOrder(This,dwStreamID,pZ)    \
  1519.     (This)->lpVtbl -> GetZOrder(This,dwStreamID,pZ)
  1520.  
  1521. #define IVMRMixerControl9_SetOutputRect(This,dwStreamID,pRect)    \
  1522.     (This)->lpVtbl -> SetOutputRect(This,dwStreamID,pRect)
  1523.  
  1524. #define IVMRMixerControl9_GetOutputRect(This,dwStreamID,pRect)    \
  1525.     (This)->lpVtbl -> GetOutputRect(This,dwStreamID,pRect)
  1526.  
  1527. #define IVMRMixerControl9_SetBackgroundClr(This,ClrBkg)    \
  1528.     (This)->lpVtbl -> SetBackgroundClr(This,ClrBkg)
  1529.  
  1530. #define IVMRMixerControl9_GetBackgroundClr(This,lpClrBkg)    \
  1531.     (This)->lpVtbl -> GetBackgroundClr(This,lpClrBkg)
  1532.  
  1533. #define IVMRMixerControl9_SetMixingPrefs(This,dwMixerPrefs)    \
  1534.     (This)->lpVtbl -> SetMixingPrefs(This,dwMixerPrefs)
  1535.  
  1536. #define IVMRMixerControl9_GetMixingPrefs(This,pdwMixerPrefs)    \
  1537.     (This)->lpVtbl -> GetMixingPrefs(This,pdwMixerPrefs)
  1538.  
  1539. #define IVMRMixerControl9_SetProcAmpControl(This,dwStreamID,lpClrControl)    \
  1540.     (This)->lpVtbl -> SetProcAmpControl(This,dwStreamID,lpClrControl)
  1541.  
  1542. #define IVMRMixerControl9_GetProcAmpControl(This,dwStreamID,lpClrControl)    \
  1543.     (This)->lpVtbl -> GetProcAmpControl(This,dwStreamID,lpClrControl)
  1544.  
  1545. #define IVMRMixerControl9_GetProcAmpControlRange(This,dwStreamID,lpClrControl)    \
  1546.     (This)->lpVtbl -> GetProcAmpControlRange(This,dwStreamID,lpClrControl)
  1547.  
  1548. #endif /* COBJMACROS */
  1549.  
  1550.  
  1551. #endif     /* C style interface */
  1552.  
  1553.  
  1554.  
  1555. HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetAlpha_Proxy( 
  1556.     IVMRMixerControl9 * This,
  1557.     /* [in] */ DWORD dwStreamID,
  1558.     /* [in] */ float Alpha);
  1559.  
  1560.  
  1561. void __RPC_STUB IVMRMixerControl9_SetAlpha_Stub(
  1562.     IRpcStubBuffer *This,
  1563.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1564.     PRPC_MESSAGE _pRpcMessage,
  1565.     DWORD *_pdwStubPhase);
  1566.  
  1567.  
  1568. HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetAlpha_Proxy( 
  1569.     IVMRMixerControl9 * This,
  1570.     /* [in] */ DWORD dwStreamID,
  1571.     /* [out] */ float *pAlpha);
  1572.  
  1573.  
  1574. void __RPC_STUB IVMRMixerControl9_GetAlpha_Stub(
  1575.     IRpcStubBuffer *This,
  1576.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1577.     PRPC_MESSAGE _pRpcMessage,
  1578.     DWORD *_pdwStubPhase);
  1579.  
  1580.  
  1581. HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetZOrder_Proxy( 
  1582.     IVMRMixerControl9 * This,
  1583.     /* [in] */ DWORD dwStreamID,
  1584.     /* [in] */ DWORD dwZ);
  1585.  
  1586.  
  1587. void __RPC_STUB IVMRMixerControl9_SetZOrder_Stub(
  1588.     IRpcStubBuffer *This,
  1589.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1590.     PRPC_MESSAGE _pRpcMessage,
  1591.     DWORD *_pdwStubPhase);
  1592.  
  1593.  
  1594. HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetZOrder_Proxy( 
  1595.     IVMRMixerControl9 * This,
  1596.     /* [in] */ DWORD dwStreamID,
  1597.     /* [out] */ DWORD *pZ);
  1598.  
  1599.  
  1600. void __RPC_STUB IVMRMixerControl9_GetZOrder_Stub(
  1601.     IRpcStubBuffer *This,
  1602.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1603.     PRPC_MESSAGE _pRpcMessage,
  1604.     DWORD *_pdwStubPhase);
  1605.  
  1606.  
  1607. HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetOutputRect_Proxy( 
  1608.     IVMRMixerControl9 * This,
  1609.     /* [in] */ DWORD dwStreamID,
  1610.     /* [in] */ const VMR9NormalizedRect *pRect);
  1611.  
  1612.  
  1613. void __RPC_STUB IVMRMixerControl9_SetOutputRect_Stub(
  1614.     IRpcStubBuffer *This,
  1615.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1616.     PRPC_MESSAGE _pRpcMessage,
  1617.     DWORD *_pdwStubPhase);
  1618.  
  1619.  
  1620. HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetOutputRect_Proxy( 
  1621.     IVMRMixerControl9 * This,
  1622.     /* [in] */ DWORD dwStreamID,
  1623.     /* [out] */ VMR9NormalizedRect *pRect);
  1624.  
  1625.  
  1626. void __RPC_STUB IVMRMixerControl9_GetOutputRect_Stub(
  1627.     IRpcStubBuffer *This,
  1628.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1629.     PRPC_MESSAGE _pRpcMessage,
  1630.     DWORD *_pdwStubPhase);
  1631.  
  1632.  
  1633. HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetBackgroundClr_Proxy( 
  1634.     IVMRMixerControl9 * This,
  1635.     /* [in] */ COLORREF ClrBkg);
  1636.  
  1637.  
  1638. void __RPC_STUB IVMRMixerControl9_SetBackgroundClr_Stub(
  1639.     IRpcStubBuffer *This,
  1640.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1641.     PRPC_MESSAGE _pRpcMessage,
  1642.     DWORD *_pdwStubPhase);
  1643.  
  1644.  
  1645. HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetBackgroundClr_Proxy( 
  1646.     IVMRMixerControl9 * This,
  1647.     /* [in] */ COLORREF *lpClrBkg);
  1648.  
  1649.  
  1650. void __RPC_STUB IVMRMixerControl9_GetBackgroundClr_Stub(
  1651.     IRpcStubBuffer *This,
  1652.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1653.     PRPC_MESSAGE _pRpcMessage,
  1654.     DWORD *_pdwStubPhase);
  1655.  
  1656.  
  1657. HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetMixingPrefs_Proxy( 
  1658.     IVMRMixerControl9 * This,
  1659.     /* [in] */ DWORD dwMixerPrefs);
  1660.  
  1661.  
  1662. void __RPC_STUB IVMRMixerControl9_SetMixingPrefs_Stub(
  1663.     IRpcStubBuffer *This,
  1664.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1665.     PRPC_MESSAGE _pRpcMessage,
  1666.     DWORD *_pdwStubPhase);
  1667.  
  1668.  
  1669. HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetMixingPrefs_Proxy( 
  1670.     IVMRMixerControl9 * This,
  1671.     /* [out] */ DWORD *pdwMixerPrefs);
  1672.  
  1673.  
  1674. void __RPC_STUB IVMRMixerControl9_GetMixingPrefs_Stub(
  1675.     IRpcStubBuffer *This,
  1676.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1677.     PRPC_MESSAGE _pRpcMessage,
  1678.     DWORD *_pdwStubPhase);
  1679.  
  1680.  
  1681. HRESULT STDMETHODCALLTYPE IVMRMixerControl9_SetProcAmpControl_Proxy( 
  1682.     IVMRMixerControl9 * This,
  1683.     /* [in] */ DWORD dwStreamID,
  1684.     /* [in] */ VMR9ProcAmpControl *lpClrControl);
  1685.  
  1686.  
  1687. void __RPC_STUB IVMRMixerControl9_SetProcAmpControl_Stub(
  1688.     IRpcStubBuffer *This,
  1689.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1690.     PRPC_MESSAGE _pRpcMessage,
  1691.     DWORD *_pdwStubPhase);
  1692.  
  1693.  
  1694. HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetProcAmpControl_Proxy( 
  1695.     IVMRMixerControl9 * This,
  1696.     /* [in] */ DWORD dwStreamID,
  1697.     /* [out][in] */ VMR9ProcAmpControl *lpClrControl);
  1698.  
  1699.  
  1700. void __RPC_STUB IVMRMixerControl9_GetProcAmpControl_Stub(
  1701.     IRpcStubBuffer *This,
  1702.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1703.     PRPC_MESSAGE _pRpcMessage,
  1704.     DWORD *_pdwStubPhase);
  1705.  
  1706.  
  1707. HRESULT STDMETHODCALLTYPE IVMRMixerControl9_GetProcAmpControlRange_Proxy( 
  1708.     IVMRMixerControl9 * This,
  1709.     /* [in] */ DWORD dwStreamID,
  1710.     /* [out][in] */ VMR9ProcAmpControlRange *lpClrControl);
  1711.  
  1712.  
  1713. void __RPC_STUB IVMRMixerControl9_GetProcAmpControlRange_Stub(
  1714.     IRpcStubBuffer *This,
  1715.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1716.     PRPC_MESSAGE _pRpcMessage,
  1717.     DWORD *_pdwStubPhase);
  1718.  
  1719.  
  1720.  
  1721. #endif     /* __IVMRMixerControl9_INTERFACE_DEFINED__ */
  1722.  
  1723.  
  1724. /* interface __MIDL_itf_vmr9_0014 */
  1725. /* [local] */ 
  1726.  
  1727. typedef struct _VMR9AlphaBitmap
  1728.     {
  1729.     DWORD dwFlags;
  1730.     HDC hdc;
  1731.     IDirect3DSurface9 *pDDS;
  1732.     RECT rSrc;
  1733.     VMR9NormalizedRect rDest;
  1734.     FLOAT fAlpha;
  1735.     COLORREF clrSrcKey;
  1736.     DWORD dwFilterMode;
  1737.     }     VMR9AlphaBitmap;
  1738.  
  1739. typedef /* [public] */ 
  1740. enum __MIDL___MIDL_itf_vmr9_0014_0001
  1741.     {    VMR9AlphaBitmap_Disable    = 0x1,
  1742.     VMR9AlphaBitmap_hDC    = 0x2,
  1743.     VMR9AlphaBitmap_EntireDDS    = 0x4,
  1744.     VMR9AlphaBitmap_SrcColorKey    = 0x8,
  1745.     VMR9AlphaBitmap_SrcRect    = 0x10,
  1746.     VMR9AlphaBitmap_FilterMode    = 0x20
  1747.     }     VMR9AlphaBitmapFlags;
  1748.  
  1749.  
  1750.  
  1751. extern RPC_IF_HANDLE __MIDL_itf_vmr9_0014_v0_0_c_ifspec;
  1752. extern RPC_IF_HANDLE __MIDL_itf_vmr9_0014_v0_0_s_ifspec;
  1753.  
  1754. #ifndef __IVMRMixerBitmap9_INTERFACE_DEFINED__
  1755. #define __IVMRMixerBitmap9_INTERFACE_DEFINED__
  1756.  
  1757. /* interface IVMRMixerBitmap9 */
  1758. /* [unique][helpstring][uuid][local][object] */ 
  1759.  
  1760.  
  1761. EXTERN_C const IID IID_IVMRMixerBitmap9;
  1762.  
  1763. #if defined(__cplusplus) && !defined(CINTERFACE)
  1764.     
  1765.     MIDL_INTERFACE("ced175e5-1935-4820-81bd-ff6ad00c9108")
  1766.     IVMRMixerBitmap9 : public IUnknown
  1767.     {
  1768.     public:
  1769.         virtual HRESULT STDMETHODCALLTYPE SetAlphaBitmap( 
  1770.             /* [in] */ const VMR9AlphaBitmap *pBmpParms) = 0;
  1771.         
  1772.         virtual HRESULT STDMETHODCALLTYPE UpdateAlphaBitmapParameters( 
  1773.             /* [in] */ const VMR9AlphaBitmap *pBmpParms) = 0;
  1774.         
  1775.         virtual HRESULT STDMETHODCALLTYPE GetAlphaBitmapParameters( 
  1776.             /* [out] */ VMR9AlphaBitmap *pBmpParms) = 0;
  1777.         
  1778.     };
  1779.     
  1780. #else     /* C style interface */
  1781.  
  1782.     typedef struct IVMRMixerBitmap9Vtbl
  1783.     {
  1784.         BEGIN_INTERFACE
  1785.         
  1786.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1787.             IVMRMixerBitmap9 * This,
  1788.             /* [in] */ REFIID riid,
  1789.             /* [iid_is][out] */ void **ppvObject);
  1790.         
  1791.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1792.             IVMRMixerBitmap9 * This);
  1793.         
  1794.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1795.             IVMRMixerBitmap9 * This);
  1796.         
  1797.         HRESULT ( STDMETHODCALLTYPE *SetAlphaBitmap )( 
  1798.             IVMRMixerBitmap9 * This,
  1799.             /* [in] */ const VMR9AlphaBitmap *pBmpParms);
  1800.         
  1801.         HRESULT ( STDMETHODCALLTYPE *UpdateAlphaBitmapParameters )( 
  1802.             IVMRMixerBitmap9 * This,
  1803.             /* [in] */ const VMR9AlphaBitmap *pBmpParms);
  1804.         
  1805.         HRESULT ( STDMETHODCALLTYPE *GetAlphaBitmapParameters )( 
  1806.             IVMRMixerBitmap9 * This,
  1807.             /* [out] */ VMR9AlphaBitmap *pBmpParms);
  1808.         
  1809.         END_INTERFACE
  1810.     } IVMRMixerBitmap9Vtbl;
  1811.  
  1812.     interface IVMRMixerBitmap9
  1813.     {
  1814.         CONST_VTBL struct IVMRMixerBitmap9Vtbl *lpVtbl;
  1815.     };
  1816.  
  1817.     
  1818.  
  1819. #ifdef COBJMACROS
  1820.  
  1821.  
  1822. #define IVMRMixerBitmap9_QueryInterface(This,riid,ppvObject)    \
  1823.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1824.  
  1825. #define IVMRMixerBitmap9_AddRef(This)    \
  1826.     (This)->lpVtbl -> AddRef(This)
  1827.  
  1828. #define IVMRMixerBitmap9_Release(This)    \
  1829.     (This)->lpVtbl -> Release(This)
  1830.  
  1831.  
  1832. #define IVMRMixerBitmap9_SetAlphaBitmap(This,pBmpParms)    \
  1833.     (This)->lpVtbl -> SetAlphaBitmap(This,pBmpParms)
  1834.  
  1835. #define IVMRMixerBitmap9_UpdateAlphaBitmapParameters(This,pBmpParms)    \
  1836.     (This)->lpVtbl -> UpdateAlphaBitmapParameters(This,pBmpParms)
  1837.  
  1838. #define IVMRMixerBitmap9_GetAlphaBitmapParameters(This,pBmpParms)    \
  1839.     (This)->lpVtbl -> GetAlphaBitmapParameters(This,pBmpParms)
  1840.  
  1841. #endif /* COBJMACROS */
  1842.  
  1843.  
  1844. #endif     /* C style interface */
  1845.  
  1846.  
  1847.  
  1848. HRESULT STDMETHODCALLTYPE IVMRMixerBitmap9_SetAlphaBitmap_Proxy( 
  1849.     IVMRMixerBitmap9 * This,
  1850.     /* [in] */ const VMR9AlphaBitmap *pBmpParms);
  1851.  
  1852.  
  1853. void __RPC_STUB IVMRMixerBitmap9_SetAlphaBitmap_Stub(
  1854.     IRpcStubBuffer *This,
  1855.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1856.     PRPC_MESSAGE _pRpcMessage,
  1857.     DWORD *_pdwStubPhase);
  1858.  
  1859.  
  1860. HRESULT STDMETHODCALLTYPE IVMRMixerBitmap9_UpdateAlphaBitmapParameters_Proxy( 
  1861.     IVMRMixerBitmap9 * This,
  1862.     /* [in] */ const VMR9AlphaBitmap *pBmpParms);
  1863.  
  1864.  
  1865. void __RPC_STUB IVMRMixerBitmap9_UpdateAlphaBitmapParameters_Stub(
  1866.     IRpcStubBuffer *This,
  1867.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1868.     PRPC_MESSAGE _pRpcMessage,
  1869.     DWORD *_pdwStubPhase);
  1870.  
  1871.  
  1872. HRESULT STDMETHODCALLTYPE IVMRMixerBitmap9_GetAlphaBitmapParameters_Proxy( 
  1873.     IVMRMixerBitmap9 * This,
  1874.     /* [out] */ VMR9AlphaBitmap *pBmpParms);
  1875.  
  1876.  
  1877. void __RPC_STUB IVMRMixerBitmap9_GetAlphaBitmapParameters_Stub(
  1878.     IRpcStubBuffer *This,
  1879.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1880.     PRPC_MESSAGE _pRpcMessage,
  1881.     DWORD *_pdwStubPhase);
  1882.  
  1883.  
  1884.  
  1885. #endif     /* __IVMRMixerBitmap9_INTERFACE_DEFINED__ */
  1886.  
  1887.  
  1888. #ifndef __IVMRSurface9_INTERFACE_DEFINED__
  1889. #define __IVMRSurface9_INTERFACE_DEFINED__
  1890.  
  1891. /* interface IVMRSurface9 */
  1892. /* [unique][helpstring][uuid][local][object][local] */ 
  1893.  
  1894.  
  1895. EXTERN_C const IID IID_IVMRSurface9;
  1896.  
  1897. #if defined(__cplusplus) && !defined(CINTERFACE)
  1898.     
  1899.     MIDL_INTERFACE("dfc581a1-6e1f-4c3a-8d0a-5e9792ea2afc")
  1900.     IVMRSurface9 : public IUnknown
  1901.     {
  1902.     public:
  1903.         virtual HRESULT STDMETHODCALLTYPE IsSurfaceLocked( void) = 0;
  1904.         
  1905.         virtual HRESULT STDMETHODCALLTYPE LockSurface( 
  1906.             /* [out] */ BYTE **lpSurface) = 0;
  1907.         
  1908.         virtual HRESULT STDMETHODCALLTYPE UnlockSurface( void) = 0;
  1909.         
  1910.         virtual HRESULT STDMETHODCALLTYPE GetSurface( 
  1911.             /* [out] */ IDirect3DSurface9 **lplpSurface) = 0;
  1912.         
  1913.     };
  1914.     
  1915. #else     /* C style interface */
  1916.  
  1917.     typedef struct IVMRSurface9Vtbl
  1918.     {
  1919.         BEGIN_INTERFACE
  1920.         
  1921.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1922.             IVMRSurface9 * This,
  1923.             /* [in] */ REFIID riid,
  1924.             /* [iid_is][out] */ void **ppvObject);
  1925.         
  1926.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1927.             IVMRSurface9 * This);
  1928.         
  1929.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1930.             IVMRSurface9 * This);
  1931.         
  1932.         HRESULT ( STDMETHODCALLTYPE *IsSurfaceLocked )( 
  1933.             IVMRSurface9 * This);
  1934.         
  1935.         HRESULT ( STDMETHODCALLTYPE *LockSurface )( 
  1936.             IVMRSurface9 * This,
  1937.             /* [out] */ BYTE **lpSurface);
  1938.         
  1939.         HRESULT ( STDMETHODCALLTYPE *UnlockSurface )( 
  1940.             IVMRSurface9 * This);
  1941.         
  1942.         HRESULT ( STDMETHODCALLTYPE *GetSurface )( 
  1943.             IVMRSurface9 * This,
  1944.             /* [out] */ IDirect3DSurface9 **lplpSurface);
  1945.         
  1946.         END_INTERFACE
  1947.     } IVMRSurface9Vtbl;
  1948.  
  1949.     interface IVMRSurface9
  1950.     {
  1951.         CONST_VTBL struct IVMRSurface9Vtbl *lpVtbl;
  1952.     };
  1953.  
  1954.     
  1955.  
  1956. #ifdef COBJMACROS
  1957.  
  1958.  
  1959. #define IVMRSurface9_QueryInterface(This,riid,ppvObject)    \
  1960.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1961.  
  1962. #define IVMRSurface9_AddRef(This)    \
  1963.     (This)->lpVtbl -> AddRef(This)
  1964.  
  1965. #define IVMRSurface9_Release(This)    \
  1966.     (This)->lpVtbl -> Release(This)
  1967.  
  1968.  
  1969. #define IVMRSurface9_IsSurfaceLocked(This)    \
  1970.     (This)->lpVtbl -> IsSurfaceLocked(This)
  1971.  
  1972. #define IVMRSurface9_LockSurface(This,lpSurface)    \
  1973.     (This)->lpVtbl -> LockSurface(This,lpSurface)
  1974.  
  1975. #define IVMRSurface9_UnlockSurface(This)    \
  1976.     (This)->lpVtbl -> UnlockSurface(This)
  1977.  
  1978. #define IVMRSurface9_GetSurface(This,lplpSurface)    \
  1979.     (This)->lpVtbl -> GetSurface(This,lplpSurface)
  1980.  
  1981. #endif /* COBJMACROS */
  1982.  
  1983.  
  1984. #endif     /* C style interface */
  1985.  
  1986.  
  1987.  
  1988. HRESULT STDMETHODCALLTYPE IVMRSurface9_IsSurfaceLocked_Proxy( 
  1989.     IVMRSurface9 * This);
  1990.  
  1991.  
  1992. void __RPC_STUB IVMRSurface9_IsSurfaceLocked_Stub(
  1993.     IRpcStubBuffer *This,
  1994.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1995.     PRPC_MESSAGE _pRpcMessage,
  1996.     DWORD *_pdwStubPhase);
  1997.  
  1998.  
  1999. HRESULT STDMETHODCALLTYPE IVMRSurface9_LockSurface_Proxy( 
  2000.     IVMRSurface9 * This,
  2001.     /* [out] */ BYTE **lpSurface);
  2002.  
  2003.  
  2004. void __RPC_STUB IVMRSurface9_LockSurface_Stub(
  2005.     IRpcStubBuffer *This,
  2006.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2007.     PRPC_MESSAGE _pRpcMessage,
  2008.     DWORD *_pdwStubPhase);
  2009.  
  2010.  
  2011. HRESULT STDMETHODCALLTYPE IVMRSurface9_UnlockSurface_Proxy( 
  2012.     IVMRSurface9 * This);
  2013.  
  2014.  
  2015. void __RPC_STUB IVMRSurface9_UnlockSurface_Stub(
  2016.     IRpcStubBuffer *This,
  2017.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2018.     PRPC_MESSAGE _pRpcMessage,
  2019.     DWORD *_pdwStubPhase);
  2020.  
  2021.  
  2022. HRESULT STDMETHODCALLTYPE IVMRSurface9_GetSurface_Proxy( 
  2023.     IVMRSurface9 * This,
  2024.     /* [out] */ IDirect3DSurface9 **lplpSurface);
  2025.  
  2026.  
  2027. void __RPC_STUB IVMRSurface9_GetSurface_Stub(
  2028.     IRpcStubBuffer *This,
  2029.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2030.     PRPC_MESSAGE _pRpcMessage,
  2031.     DWORD *_pdwStubPhase);
  2032.  
  2033.  
  2034.  
  2035. #endif     /* __IVMRSurface9_INTERFACE_DEFINED__ */
  2036.  
  2037.  
  2038. /* interface __MIDL_itf_vmr9_0016 */
  2039. /* [local] */ 
  2040.  
  2041. typedef /* [public] */ 
  2042. enum __MIDL___MIDL_itf_vmr9_0016_0001
  2043.     {    RenderPrefs9_DoNotRenderBorder    = 0x1,
  2044.     RenderPrefs9_Mask    = 0x1
  2045.     }     VMR9RenderPrefs;
  2046.  
  2047.  
  2048.  
  2049. extern RPC_IF_HANDLE __MIDL_itf_vmr9_0016_v0_0_c_ifspec;
  2050. extern RPC_IF_HANDLE __MIDL_itf_vmr9_0016_v0_0_s_ifspec;
  2051.  
  2052. #ifndef __IVMRImagePresenterConfig9_INTERFACE_DEFINED__
  2053. #define __IVMRImagePresenterConfig9_INTERFACE_DEFINED__
  2054.  
  2055. /* interface IVMRImagePresenterConfig9 */
  2056. /* [unique][helpstring][uuid][local][object][local] */ 
  2057.  
  2058.  
  2059. EXTERN_C const IID IID_IVMRImagePresenterConfig9;
  2060.  
  2061. #if defined(__cplusplus) && !defined(CINTERFACE)
  2062.     
  2063.     MIDL_INTERFACE("45c15cab-6e22-420a-8043-ae1f0ac02c7d")
  2064.     IVMRImagePresenterConfig9 : public IUnknown
  2065.     {
  2066.     public:
  2067.         virtual HRESULT STDMETHODCALLTYPE SetRenderingPrefs( 
  2068.             /* [in] */ DWORD dwRenderFlags) = 0;
  2069.         
  2070.         virtual HRESULT STDMETHODCALLTYPE GetRenderingPrefs( 
  2071.             /* [out] */ DWORD *dwRenderFlags) = 0;
  2072.         
  2073.     };
  2074.     
  2075. #else     /* C style interface */
  2076.  
  2077.     typedef struct IVMRImagePresenterConfig9Vtbl
  2078.     {
  2079.         BEGIN_INTERFACE
  2080.         
  2081.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2082.             IVMRImagePresenterConfig9 * This,
  2083.             /* [in] */ REFIID riid,
  2084.             /* [iid_is][out] */ void **ppvObject);
  2085.         
  2086.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2087.             IVMRImagePresenterConfig9 * This);
  2088.         
  2089.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2090.             IVMRImagePresenterConfig9 * This);
  2091.         
  2092.         HRESULT ( STDMETHODCALLTYPE *SetRenderingPrefs )( 
  2093.             IVMRImagePresenterConfig9 * This,
  2094.             /* [in] */ DWORD dwRenderFlags);
  2095.         
  2096.         HRESULT ( STDMETHODCALLTYPE *GetRenderingPrefs )( 
  2097.             IVMRImagePresenterConfig9 * This,
  2098.             /* [out] */ DWORD *dwRenderFlags);
  2099.         
  2100.         END_INTERFACE
  2101.     } IVMRImagePresenterConfig9Vtbl;
  2102.  
  2103.     interface IVMRImagePresenterConfig9
  2104.     {
  2105.         CONST_VTBL struct IVMRImagePresenterConfig9Vtbl *lpVtbl;
  2106.     };
  2107.  
  2108.     
  2109.  
  2110. #ifdef COBJMACROS
  2111.  
  2112.  
  2113. #define IVMRImagePresenterConfig9_QueryInterface(This,riid,ppvObject)    \
  2114.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2115.  
  2116. #define IVMRImagePresenterConfig9_AddRef(This)    \
  2117.     (This)->lpVtbl -> AddRef(This)
  2118.  
  2119. #define IVMRImagePresenterConfig9_Release(This)    \
  2120.     (This)->lpVtbl -> Release(This)
  2121.  
  2122.  
  2123. #define IVMRImagePresenterConfig9_SetRenderingPrefs(This,dwRenderFlags)    \
  2124.     (This)->lpVtbl -> SetRenderingPrefs(This,dwRenderFlags)
  2125.  
  2126. #define IVMRImagePresenterConfig9_GetRenderingPrefs(This,dwRenderFlags)    \
  2127.     (This)->lpVtbl -> GetRenderingPrefs(This,dwRenderFlags)
  2128.  
  2129. #endif /* COBJMACROS */
  2130.  
  2131.  
  2132. #endif     /* C style interface */
  2133.  
  2134.  
  2135.  
  2136. HRESULT STDMETHODCALLTYPE IVMRImagePresenterConfig9_SetRenderingPrefs_Proxy( 
  2137.     IVMRImagePresenterConfig9 * This,
  2138.     /* [in] */ DWORD dwRenderFlags);
  2139.  
  2140.  
  2141. void __RPC_STUB IVMRImagePresenterConfig9_SetRenderingPrefs_Stub(
  2142.     IRpcStubBuffer *This,
  2143.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2144.     PRPC_MESSAGE _pRpcMessage,
  2145.     DWORD *_pdwStubPhase);
  2146.  
  2147.  
  2148. HRESULT STDMETHODCALLTYPE IVMRImagePresenterConfig9_GetRenderingPrefs_Proxy( 
  2149.     IVMRImagePresenterConfig9 * This,
  2150.     /* [out] */ DWORD *dwRenderFlags);
  2151.  
  2152.  
  2153. void __RPC_STUB IVMRImagePresenterConfig9_GetRenderingPrefs_Stub(
  2154.     IRpcStubBuffer *This,
  2155.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2156.     PRPC_MESSAGE _pRpcMessage,
  2157.     DWORD *_pdwStubPhase);
  2158.  
  2159.  
  2160.  
  2161. #endif     /* __IVMRImagePresenterConfig9_INTERFACE_DEFINED__ */
  2162.  
  2163.  
  2164. #ifndef __IVMRVideoStreamControl9_INTERFACE_DEFINED__
  2165. #define __IVMRVideoStreamControl9_INTERFACE_DEFINED__
  2166.  
  2167. /* interface IVMRVideoStreamControl9 */
  2168. /* [unique][helpstring][uuid][local][object] */ 
  2169.  
  2170.  
  2171. EXTERN_C const IID IID_IVMRVideoStreamControl9;
  2172.  
  2173. #if defined(__cplusplus) && !defined(CINTERFACE)
  2174.     
  2175.     MIDL_INTERFACE("d0cfe38b-93e7-4772-8957-0400c49a4485")
  2176.     IVMRVideoStreamControl9 : public IUnknown
  2177.     {
  2178.     public:
  2179.         virtual HRESULT STDMETHODCALLTYPE SetStreamActiveState( 
  2180.             /* [in] */ BOOL fActive) = 0;
  2181.         
  2182.         virtual HRESULT STDMETHODCALLTYPE GetStreamActiveState( 
  2183.             /* [out] */ BOOL *lpfActive) = 0;
  2184.         
  2185.     };
  2186.     
  2187. #else     /* C style interface */
  2188.  
  2189.     typedef struct IVMRVideoStreamControl9Vtbl
  2190.     {
  2191.         BEGIN_INTERFACE
  2192.         
  2193.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2194.             IVMRVideoStreamControl9 * This,
  2195.             /* [in] */ REFIID riid,
  2196.             /* [iid_is][out] */ void **ppvObject);
  2197.         
  2198.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2199.             IVMRVideoStreamControl9 * This);
  2200.         
  2201.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2202.             IVMRVideoStreamControl9 * This);
  2203.         
  2204.         HRESULT ( STDMETHODCALLTYPE *SetStreamActiveState )( 
  2205.             IVMRVideoStreamControl9 * This,
  2206.             /* [in] */ BOOL fActive);
  2207.         
  2208.         HRESULT ( STDMETHODCALLTYPE *GetStreamActiveState )( 
  2209.             IVMRVideoStreamControl9 * This,
  2210.             /* [out] */ BOOL *lpfActive);
  2211.         
  2212.         END_INTERFACE
  2213.     } IVMRVideoStreamControl9Vtbl;
  2214.  
  2215.     interface IVMRVideoStreamControl9
  2216.     {
  2217.         CONST_VTBL struct IVMRVideoStreamControl9Vtbl *lpVtbl;
  2218.     };
  2219.  
  2220.     
  2221.  
  2222. #ifdef COBJMACROS
  2223.  
  2224.  
  2225. #define IVMRVideoStreamControl9_QueryInterface(This,riid,ppvObject)    \
  2226.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2227.  
  2228. #define IVMRVideoStreamControl9_AddRef(This)    \
  2229.     (This)->lpVtbl -> AddRef(This)
  2230.  
  2231. #define IVMRVideoStreamControl9_Release(This)    \
  2232.     (This)->lpVtbl -> Release(This)
  2233.  
  2234.  
  2235. #define IVMRVideoStreamControl9_SetStreamActiveState(This,fActive)    \
  2236.     (This)->lpVtbl -> SetStreamActiveState(This,fActive)
  2237.  
  2238. #define IVMRVideoStreamControl9_GetStreamActiveState(This,lpfActive)    \
  2239.     (This)->lpVtbl -> GetStreamActiveState(This,lpfActive)
  2240.  
  2241. #endif /* COBJMACROS */
  2242.  
  2243.  
  2244. #endif     /* C style interface */
  2245.  
  2246.  
  2247.  
  2248. HRESULT STDMETHODCALLTYPE IVMRVideoStreamControl9_SetStreamActiveState_Proxy( 
  2249.     IVMRVideoStreamControl9 * This,
  2250.     /* [in] */ BOOL fActive);
  2251.  
  2252.  
  2253. void __RPC_STUB IVMRVideoStreamControl9_SetStreamActiveState_Stub(
  2254.     IRpcStubBuffer *This,
  2255.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2256.     PRPC_MESSAGE _pRpcMessage,
  2257.     DWORD *_pdwStubPhase);
  2258.  
  2259.  
  2260. HRESULT STDMETHODCALLTYPE IVMRVideoStreamControl9_GetStreamActiveState_Proxy( 
  2261.     IVMRVideoStreamControl9 * This,
  2262.     /* [out] */ BOOL *lpfActive);
  2263.  
  2264.  
  2265. void __RPC_STUB IVMRVideoStreamControl9_GetStreamActiveState_Stub(
  2266.     IRpcStubBuffer *This,
  2267.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2268.     PRPC_MESSAGE _pRpcMessage,
  2269.     DWORD *_pdwStubPhase);
  2270.  
  2271.  
  2272.  
  2273. #endif     /* __IVMRVideoStreamControl9_INTERFACE_DEFINED__ */
  2274.  
  2275.  
  2276. /* interface __MIDL_itf_vmr9_0018 */
  2277. /* [local] */ 
  2278.  
  2279. typedef /* [public] */ 
  2280. enum __MIDL___MIDL_itf_vmr9_0018_0001
  2281.     {    VMR9Mode_Windowed    = 0x1,
  2282.     VMR9Mode_Windowless    = 0x2,
  2283.     VMR9Mode_Renderless    = 0x4,
  2284.     VMR9Mode_Mask    = 0x7
  2285.     }     VMR9Mode;
  2286.  
  2287.  
  2288.  
  2289. extern RPC_IF_HANDLE __MIDL_itf_vmr9_0018_v0_0_c_ifspec;
  2290. extern RPC_IF_HANDLE __MIDL_itf_vmr9_0018_v0_0_s_ifspec;
  2291.  
  2292. #ifndef __IVMRFilterConfig9_INTERFACE_DEFINED__
  2293. #define __IVMRFilterConfig9_INTERFACE_DEFINED__
  2294.  
  2295. /* interface IVMRFilterConfig9 */
  2296. /* [unique][helpstring][uuid][local][object] */ 
  2297.  
  2298.  
  2299. EXTERN_C const IID IID_IVMRFilterConfig9;
  2300.  
  2301. #if defined(__cplusplus) && !defined(CINTERFACE)
  2302.     
  2303.     MIDL_INTERFACE("5a804648-4f66-4867-9c43-4f5c822cf1b8")
  2304.     IVMRFilterConfig9 : public IUnknown
  2305.     {
  2306.     public:
  2307.         virtual HRESULT STDMETHODCALLTYPE SetImageCompositor( 
  2308.             /* [in] */ IVMRImageCompositor9 *lpVMRImgCompositor) = 0;
  2309.         
  2310.         virtual HRESULT STDMETHODCALLTYPE SetNumberOfStreams( 
  2311.             /* [in] */ DWORD dwMaxStreams) = 0;
  2312.         
  2313.         virtual HRESULT STDMETHODCALLTYPE GetNumberOfStreams( 
  2314.             /* [out] */ DWORD *pdwMaxStreams) = 0;
  2315.         
  2316.         virtual HRESULT STDMETHODCALLTYPE SetRenderingPrefs( 
  2317.             /* [in] */ DWORD dwRenderFlags) = 0;
  2318.         
  2319.         virtual HRESULT STDMETHODCALLTYPE GetRenderingPrefs( 
  2320.             /* [out] */ DWORD *pdwRenderFlags) = 0;
  2321.         
  2322.         virtual HRESULT STDMETHODCALLTYPE SetRenderingMode( 
  2323.             /* [in] */ DWORD Mode) = 0;
  2324.         
  2325.         virtual HRESULT STDMETHODCALLTYPE GetRenderingMode( 
  2326.             /* [out] */ DWORD *pMode) = 0;
  2327.         
  2328.     };
  2329.     
  2330. #else     /* C style interface */
  2331.  
  2332.     typedef struct IVMRFilterConfig9Vtbl
  2333.     {
  2334.         BEGIN_INTERFACE
  2335.         
  2336.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2337.             IVMRFilterConfig9 * This,
  2338.             /* [in] */ REFIID riid,
  2339.             /* [iid_is][out] */ void **ppvObject);
  2340.         
  2341.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2342.             IVMRFilterConfig9 * This);
  2343.         
  2344.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2345.             IVMRFilterConfig9 * This);
  2346.         
  2347.         HRESULT ( STDMETHODCALLTYPE *SetImageCompositor )( 
  2348.             IVMRFilterConfig9 * This,
  2349.             /* [in] */ IVMRImageCompositor9 *lpVMRImgCompositor);
  2350.         
  2351.         HRESULT ( STDMETHODCALLTYPE *SetNumberOfStreams )( 
  2352.             IVMRFilterConfig9 * This,
  2353.             /* [in] */ DWORD dwMaxStreams);
  2354.         
  2355.         HRESULT ( STDMETHODCALLTYPE *GetNumberOfStreams )( 
  2356.             IVMRFilterConfig9 * This,
  2357.             /* [out] */ DWORD *pdwMaxStreams);
  2358.         
  2359.         HRESULT ( STDMETHODCALLTYPE *SetRenderingPrefs )( 
  2360.             IVMRFilterConfig9 * This,
  2361.             /* [in] */ DWORD dwRenderFlags);
  2362.         
  2363.         HRESULT ( STDMETHODCALLTYPE *GetRenderingPrefs )( 
  2364.             IVMRFilterConfig9 * This,
  2365.             /* [out] */ DWORD *pdwRenderFlags);
  2366.         
  2367.         HRESULT ( STDMETHODCALLTYPE *SetRenderingMode )( 
  2368.             IVMRFilterConfig9 * This,
  2369.             /* [in] */ DWORD Mode);
  2370.         
  2371.         HRESULT ( STDMETHODCALLTYPE *GetRenderingMode )( 
  2372.             IVMRFilterConfig9 * This,
  2373.             /* [out] */ DWORD *pMode);
  2374.         
  2375.         END_INTERFACE
  2376.     } IVMRFilterConfig9Vtbl;
  2377.  
  2378.     interface IVMRFilterConfig9
  2379.     {
  2380.         CONST_VTBL struct IVMRFilterConfig9Vtbl *lpVtbl;
  2381.     };
  2382.  
  2383.     
  2384.  
  2385. #ifdef COBJMACROS
  2386.  
  2387.  
  2388. #define IVMRFilterConfig9_QueryInterface(This,riid,ppvObject)    \
  2389.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2390.  
  2391. #define IVMRFilterConfig9_AddRef(This)    \
  2392.     (This)->lpVtbl -> AddRef(This)
  2393.  
  2394. #define IVMRFilterConfig9_Release(This)    \
  2395.     (This)->lpVtbl -> Release(This)
  2396.  
  2397.  
  2398. #define IVMRFilterConfig9_SetImageCompositor(This,lpVMRImgCompositor)    \
  2399.     (This)->lpVtbl -> SetImageCompositor(This,lpVMRImgCompositor)
  2400.  
  2401. #define IVMRFilterConfig9_SetNumberOfStreams(This,dwMaxStreams)    \
  2402.     (This)->lpVtbl -> SetNumberOfStreams(This,dwMaxStreams)
  2403.  
  2404. #define IVMRFilterConfig9_GetNumberOfStreams(This,pdwMaxStreams)    \
  2405.     (This)->lpVtbl -> GetNumberOfStreams(This,pdwMaxStreams)
  2406.  
  2407. #define IVMRFilterConfig9_SetRenderingPrefs(This,dwRenderFlags)    \
  2408.     (This)->lpVtbl -> SetRenderingPrefs(This,dwRenderFlags)
  2409.  
  2410. #define IVMRFilterConfig9_GetRenderingPrefs(This,pdwRenderFlags)    \
  2411.     (This)->lpVtbl -> GetRenderingPrefs(This,pdwRenderFlags)
  2412.  
  2413. #define IVMRFilterConfig9_SetRenderingMode(This,Mode)    \
  2414.     (This)->lpVtbl -> SetRenderingMode(This,Mode)
  2415.  
  2416. #define IVMRFilterConfig9_GetRenderingMode(This,pMode)    \
  2417.     (This)->lpVtbl -> GetRenderingMode(This,pMode)
  2418.  
  2419. #endif /* COBJMACROS */
  2420.  
  2421.  
  2422. #endif     /* C style interface */
  2423.  
  2424.  
  2425.  
  2426. HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_SetImageCompositor_Proxy( 
  2427.     IVMRFilterConfig9 * This,
  2428.     /* [in] */ IVMRImageCompositor9 *lpVMRImgCompositor);
  2429.  
  2430.  
  2431. void __RPC_STUB IVMRFilterConfig9_SetImageCompositor_Stub(
  2432.     IRpcStubBuffer *This,
  2433.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2434.     PRPC_MESSAGE _pRpcMessage,
  2435.     DWORD *_pdwStubPhase);
  2436.  
  2437.  
  2438. HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_SetNumberOfStreams_Proxy( 
  2439.     IVMRFilterConfig9 * This,
  2440.     /* [in] */ DWORD dwMaxStreams);
  2441.  
  2442.  
  2443. void __RPC_STUB IVMRFilterConfig9_SetNumberOfStreams_Stub(
  2444.     IRpcStubBuffer *This,
  2445.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2446.     PRPC_MESSAGE _pRpcMessage,
  2447.     DWORD *_pdwStubPhase);
  2448.  
  2449.  
  2450. HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_GetNumberOfStreams_Proxy( 
  2451.     IVMRFilterConfig9 * This,
  2452.     /* [out] */ DWORD *pdwMaxStreams);
  2453.  
  2454.  
  2455. void __RPC_STUB IVMRFilterConfig9_GetNumberOfStreams_Stub(
  2456.     IRpcStubBuffer *This,
  2457.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2458.     PRPC_MESSAGE _pRpcMessage,
  2459.     DWORD *_pdwStubPhase);
  2460.  
  2461.  
  2462. HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_SetRenderingPrefs_Proxy( 
  2463.     IVMRFilterConfig9 * This,
  2464.     /* [in] */ DWORD dwRenderFlags);
  2465.  
  2466.  
  2467. void __RPC_STUB IVMRFilterConfig9_SetRenderingPrefs_Stub(
  2468.     IRpcStubBuffer *This,
  2469.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2470.     PRPC_MESSAGE _pRpcMessage,
  2471.     DWORD *_pdwStubPhase);
  2472.  
  2473.  
  2474. HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_GetRenderingPrefs_Proxy( 
  2475.     IVMRFilterConfig9 * This,
  2476.     /* [out] */ DWORD *pdwRenderFlags);
  2477.  
  2478.  
  2479. void __RPC_STUB IVMRFilterConfig9_GetRenderingPrefs_Stub(
  2480.     IRpcStubBuffer *This,
  2481.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2482.     PRPC_MESSAGE _pRpcMessage,
  2483.     DWORD *_pdwStubPhase);
  2484.  
  2485.  
  2486. HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_SetRenderingMode_Proxy( 
  2487.     IVMRFilterConfig9 * This,
  2488.     /* [in] */ DWORD Mode);
  2489.  
  2490.  
  2491. void __RPC_STUB IVMRFilterConfig9_SetRenderingMode_Stub(
  2492.     IRpcStubBuffer *This,
  2493.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2494.     PRPC_MESSAGE _pRpcMessage,
  2495.     DWORD *_pdwStubPhase);
  2496.  
  2497.  
  2498. HRESULT STDMETHODCALLTYPE IVMRFilterConfig9_GetRenderingMode_Proxy( 
  2499.     IVMRFilterConfig9 * This,
  2500.     /* [out] */ DWORD *pMode);
  2501.  
  2502.  
  2503. void __RPC_STUB IVMRFilterConfig9_GetRenderingMode_Stub(
  2504.     IRpcStubBuffer *This,
  2505.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2506.     PRPC_MESSAGE _pRpcMessage,
  2507.     DWORD *_pdwStubPhase);
  2508.  
  2509.  
  2510.  
  2511. #endif     /* __IVMRFilterConfig9_INTERFACE_DEFINED__ */
  2512.  
  2513.  
  2514. #ifndef __IVMRAspectRatioControl9_INTERFACE_DEFINED__
  2515. #define __IVMRAspectRatioControl9_INTERFACE_DEFINED__
  2516.  
  2517. /* interface IVMRAspectRatioControl9 */
  2518. /* [unique][helpstring][uuid][local][object] */ 
  2519.  
  2520.  
  2521. EXTERN_C const IID IID_IVMRAspectRatioControl9;
  2522.  
  2523. #if defined(__cplusplus) && !defined(CINTERFACE)
  2524.     
  2525.     MIDL_INTERFACE("00d96c29-bbde-4efc-9901-bb5036392146")
  2526.     IVMRAspectRatioControl9 : public IUnknown
  2527.     {
  2528.     public:
  2529.         virtual HRESULT STDMETHODCALLTYPE GetAspectRatioMode( 
  2530.             /* [out] */ LPDWORD lpdwARMode) = 0;
  2531.         
  2532.         virtual HRESULT STDMETHODCALLTYPE SetAspectRatioMode( 
  2533.             /* [in] */ DWORD dwARMode) = 0;
  2534.         
  2535.     };
  2536.     
  2537. #else     /* C style interface */
  2538.  
  2539.     typedef struct IVMRAspectRatioControl9Vtbl
  2540.     {
  2541.         BEGIN_INTERFACE
  2542.         
  2543.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2544.             IVMRAspectRatioControl9 * This,
  2545.             /* [in] */ REFIID riid,
  2546.             /* [iid_is][out] */ void **ppvObject);
  2547.         
  2548.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2549.             IVMRAspectRatioControl9 * This);
  2550.         
  2551.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2552.             IVMRAspectRatioControl9 * This);
  2553.         
  2554.         HRESULT ( STDMETHODCALLTYPE *GetAspectRatioMode )( 
  2555.             IVMRAspectRatioControl9 * This,
  2556.             /* [out] */ LPDWORD lpdwARMode);
  2557.         
  2558.         HRESULT ( STDMETHODCALLTYPE *SetAspectRatioMode )( 
  2559.             IVMRAspectRatioControl9 * This,
  2560.             /* [in] */ DWORD dwARMode);
  2561.         
  2562.         END_INTERFACE
  2563.     } IVMRAspectRatioControl9Vtbl;
  2564.  
  2565.     interface IVMRAspectRatioControl9
  2566.     {
  2567.         CONST_VTBL struct IVMRAspectRatioControl9Vtbl *lpVtbl;
  2568.     };
  2569.  
  2570.     
  2571.  
  2572. #ifdef COBJMACROS
  2573.  
  2574.  
  2575. #define IVMRAspectRatioControl9_QueryInterface(This,riid,ppvObject)    \
  2576.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2577.  
  2578. #define IVMRAspectRatioControl9_AddRef(This)    \
  2579.     (This)->lpVtbl -> AddRef(This)
  2580.  
  2581. #define IVMRAspectRatioControl9_Release(This)    \
  2582.     (This)->lpVtbl -> Release(This)
  2583.  
  2584.  
  2585. #define IVMRAspectRatioControl9_GetAspectRatioMode(This,lpdwARMode)    \
  2586.     (This)->lpVtbl -> GetAspectRatioMode(This,lpdwARMode)
  2587.  
  2588. #define IVMRAspectRatioControl9_SetAspectRatioMode(This,dwARMode)    \
  2589.     (This)->lpVtbl -> SetAspectRatioMode(This,dwARMode)
  2590.  
  2591. #endif /* COBJMACROS */
  2592.  
  2593.  
  2594. #endif     /* C style interface */
  2595.  
  2596.  
  2597.  
  2598. HRESULT STDMETHODCALLTYPE IVMRAspectRatioControl9_GetAspectRatioMode_Proxy( 
  2599.     IVMRAspectRatioControl9 * This,
  2600.     /* [out] */ LPDWORD lpdwARMode);
  2601.  
  2602.  
  2603. void __RPC_STUB IVMRAspectRatioControl9_GetAspectRatioMode_Stub(
  2604.     IRpcStubBuffer *This,
  2605.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2606.     PRPC_MESSAGE _pRpcMessage,
  2607.     DWORD *_pdwStubPhase);
  2608.  
  2609.  
  2610. HRESULT STDMETHODCALLTYPE IVMRAspectRatioControl9_SetAspectRatioMode_Proxy( 
  2611.     IVMRAspectRatioControl9 * This,
  2612.     /* [in] */ DWORD dwARMode);
  2613.  
  2614.  
  2615. void __RPC_STUB IVMRAspectRatioControl9_SetAspectRatioMode_Stub(
  2616.     IRpcStubBuffer *This,
  2617.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2618.     PRPC_MESSAGE _pRpcMessage,
  2619.     DWORD *_pdwStubPhase);
  2620.  
  2621.  
  2622.  
  2623. #endif     /* __IVMRAspectRatioControl9_INTERFACE_DEFINED__ */
  2624.  
  2625.  
  2626. /* interface __MIDL_itf_vmr9_0020 */
  2627. /* [local] */ 
  2628.  
  2629. typedef struct _VMR9MonitorInfo
  2630.     {
  2631.     UINT uDevID;
  2632.     RECT rcMonitor;
  2633.     HMONITOR hMon;
  2634.     DWORD dwFlags;
  2635.     wchar_t szDevice[ 32 ];
  2636.     wchar_t szDescription[ 512 ];
  2637.     LARGE_INTEGER liDriverVersion;
  2638.     DWORD dwVendorId;
  2639.     DWORD dwDeviceId;
  2640.     DWORD dwSubSysId;
  2641.     DWORD dwRevision;
  2642.     }     VMR9MonitorInfo;
  2643.  
  2644.  
  2645.  
  2646. extern RPC_IF_HANDLE __MIDL_itf_vmr9_0020_v0_0_c_ifspec;
  2647. extern RPC_IF_HANDLE __MIDL_itf_vmr9_0020_v0_0_s_ifspec;
  2648.  
  2649. #ifndef __IVMRMonitorConfig9_INTERFACE_DEFINED__
  2650. #define __IVMRMonitorConfig9_INTERFACE_DEFINED__
  2651.  
  2652. /* interface IVMRMonitorConfig9 */
  2653. /* [unique][helpstring][uuid][local][object] */ 
  2654.  
  2655.  
  2656. EXTERN_C const IID IID_IVMRMonitorConfig9;
  2657.  
  2658. #if defined(__cplusplus) && !defined(CINTERFACE)
  2659.     
  2660.     MIDL_INTERFACE("46c2e457-8ba0-4eef-b80b-0680f0978749")
  2661.     IVMRMonitorConfig9 : public IUnknown
  2662.     {
  2663.     public:
  2664.         virtual HRESULT STDMETHODCALLTYPE SetMonitor( 
  2665.             /* [in] */ UINT uDev) = 0;
  2666.         
  2667.         virtual HRESULT STDMETHODCALLTYPE GetMonitor( 
  2668.             /* [out] */ UINT *puDev) = 0;
  2669.         
  2670.         virtual HRESULT STDMETHODCALLTYPE SetDefaultMonitor( 
  2671.             /* [in] */ UINT uDev) = 0;
  2672.         
  2673.         virtual HRESULT STDMETHODCALLTYPE GetDefaultMonitor( 
  2674.             /* [out] */ UINT *puDev) = 0;
  2675.         
  2676.         virtual HRESULT STDMETHODCALLTYPE GetAvailableMonitors( 
  2677.             /* [size_is][out] */ VMR9MonitorInfo *pInfo,
  2678.             /* [in] */ DWORD dwMaxInfoArraySize,
  2679.             /* [out] */ DWORD *pdwNumDevices) = 0;
  2680.         
  2681.     };
  2682.     
  2683. #else     /* C style interface */
  2684.  
  2685.     typedef struct IVMRMonitorConfig9Vtbl
  2686.     {
  2687.         BEGIN_INTERFACE
  2688.         
  2689.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2690.             IVMRMonitorConfig9 * This,
  2691.             /* [in] */ REFIID riid,
  2692.             /* [iid_is][out] */ void **ppvObject);
  2693.         
  2694.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2695.             IVMRMonitorConfig9 * This);
  2696.         
  2697.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2698.             IVMRMonitorConfig9 * This);
  2699.         
  2700.         HRESULT ( STDMETHODCALLTYPE *SetMonitor )( 
  2701.             IVMRMonitorConfig9 * This,
  2702.             /* [in] */ UINT uDev);
  2703.         
  2704.         HRESULT ( STDMETHODCALLTYPE *GetMonitor )( 
  2705.             IVMRMonitorConfig9 * This,
  2706.             /* [out] */ UINT *puDev);
  2707.         
  2708.         HRESULT ( STDMETHODCALLTYPE *SetDefaultMonitor )( 
  2709.             IVMRMonitorConfig9 * This,
  2710.             /* [in] */ UINT uDev);
  2711.         
  2712.         HRESULT ( STDMETHODCALLTYPE *GetDefaultMonitor )( 
  2713.             IVMRMonitorConfig9 * This,
  2714.             /* [out] */ UINT *puDev);
  2715.         
  2716.         HRESULT ( STDMETHODCALLTYPE *GetAvailableMonitors )( 
  2717.             IVMRMonitorConfig9 * This,
  2718.             /* [size_is][out] */ VMR9MonitorInfo *pInfo,
  2719.             /* [in] */ DWORD dwMaxInfoArraySize,
  2720.             /* [out] */ DWORD *pdwNumDevices);
  2721.         
  2722.         END_INTERFACE
  2723.     } IVMRMonitorConfig9Vtbl;
  2724.  
  2725.     interface IVMRMonitorConfig9
  2726.     {
  2727.         CONST_VTBL struct IVMRMonitorConfig9Vtbl *lpVtbl;
  2728.     };
  2729.  
  2730.     
  2731.  
  2732. #ifdef COBJMACROS
  2733.  
  2734.  
  2735. #define IVMRMonitorConfig9_QueryInterface(This,riid,ppvObject)    \
  2736.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2737.  
  2738. #define IVMRMonitorConfig9_AddRef(This)    \
  2739.     (This)->lpVtbl -> AddRef(This)
  2740.  
  2741. #define IVMRMonitorConfig9_Release(This)    \
  2742.     (This)->lpVtbl -> Release(This)
  2743.  
  2744.  
  2745. #define IVMRMonitorConfig9_SetMonitor(This,uDev)    \
  2746.     (This)->lpVtbl -> SetMonitor(This,uDev)
  2747.  
  2748. #define IVMRMonitorConfig9_GetMonitor(This,puDev)    \
  2749.     (This)->lpVtbl -> GetMonitor(This,puDev)
  2750.  
  2751. #define IVMRMonitorConfig9_SetDefaultMonitor(This,uDev)    \
  2752.     (This)->lpVtbl -> SetDefaultMonitor(This,uDev)
  2753.  
  2754. #define IVMRMonitorConfig9_GetDefaultMonitor(This,puDev)    \
  2755.     (This)->lpVtbl -> GetDefaultMonitor(This,puDev)
  2756.  
  2757. #define IVMRMonitorConfig9_GetAvailableMonitors(This,pInfo,dwMaxInfoArraySize,pdwNumDevices)    \
  2758.     (This)->lpVtbl -> GetAvailableMonitors(This,pInfo,dwMaxInfoArraySize,pdwNumDevices)
  2759.  
  2760. #endif /* COBJMACROS */
  2761.  
  2762.  
  2763. #endif     /* C style interface */
  2764.  
  2765.  
  2766.  
  2767. HRESULT STDMETHODCALLTYPE IVMRMonitorConfig9_SetMonitor_Proxy( 
  2768.     IVMRMonitorConfig9 * This,
  2769.     /* [in] */ UINT uDev);
  2770.  
  2771.  
  2772. void __RPC_STUB IVMRMonitorConfig9_SetMonitor_Stub(
  2773.     IRpcStubBuffer *This,
  2774.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2775.     PRPC_MESSAGE _pRpcMessage,
  2776.     DWORD *_pdwStubPhase);
  2777.  
  2778.  
  2779. HRESULT STDMETHODCALLTYPE IVMRMonitorConfig9_GetMonitor_Proxy( 
  2780.     IVMRMonitorConfig9 * This,
  2781.     /* [out] */ UINT *puDev);
  2782.  
  2783.  
  2784. void __RPC_STUB IVMRMonitorConfig9_GetMonitor_Stub(
  2785.     IRpcStubBuffer *This,
  2786.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2787.     PRPC_MESSAGE _pRpcMessage,
  2788.     DWORD *_pdwStubPhase);
  2789.  
  2790.  
  2791. HRESULT STDMETHODCALLTYPE IVMRMonitorConfig9_SetDefaultMonitor_Proxy( 
  2792.     IVMRMonitorConfig9 * This,
  2793.     /* [in] */ UINT uDev);
  2794.  
  2795.  
  2796. void __RPC_STUB IVMRMonitorConfig9_SetDefaultMonitor_Stub(
  2797.     IRpcStubBuffer *This,
  2798.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2799.     PRPC_MESSAGE _pRpcMessage,
  2800.     DWORD *_pdwStubPhase);
  2801.  
  2802.  
  2803. HRESULT STDMETHODCALLTYPE IVMRMonitorConfig9_GetDefaultMonitor_Proxy( 
  2804.     IVMRMonitorConfig9 * This,
  2805.     /* [out] */ UINT *puDev);
  2806.  
  2807.  
  2808. void __RPC_STUB IVMRMonitorConfig9_GetDefaultMonitor_Stub(
  2809.     IRpcStubBuffer *This,
  2810.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2811.     PRPC_MESSAGE _pRpcMessage,
  2812.     DWORD *_pdwStubPhase);
  2813.  
  2814.  
  2815. HRESULT STDMETHODCALLTYPE IVMRMonitorConfig9_GetAvailableMonitors_Proxy( 
  2816.     IVMRMonitorConfig9 * This,
  2817.     /* [size_is][out] */ VMR9MonitorInfo *pInfo,
  2818.     /* [in] */ DWORD dwMaxInfoArraySize,
  2819.     /* [out] */ DWORD *pdwNumDevices);
  2820.  
  2821.  
  2822. void __RPC_STUB IVMRMonitorConfig9_GetAvailableMonitors_Stub(
  2823.     IRpcStubBuffer *This,
  2824.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2825.     PRPC_MESSAGE _pRpcMessage,
  2826.     DWORD *_pdwStubPhase);
  2827.  
  2828.  
  2829.  
  2830. #endif     /* __IVMRMonitorConfig9_INTERFACE_DEFINED__ */
  2831.  
  2832.  
  2833. /* interface __MIDL_itf_vmr9_0021 */
  2834. /* [local] */ 
  2835.  
  2836. typedef /* [public] */ 
  2837. enum __MIDL___MIDL_itf_vmr9_0021_0001
  2838.     {    DeinterlacePref9_NextBest    = 0x1,
  2839.     DeinterlacePref9_BOB    = 0x2,
  2840.     DeinterlacePref9_Weave    = 0x4,
  2841.     DeinterlacePref9_Mask    = 0x7
  2842.     }     VMR9DeinterlacePrefs;
  2843.  
  2844. typedef /* [public][public][public] */ 
  2845. enum __MIDL___MIDL_itf_vmr9_0021_0002
  2846.     {    DeinterlaceTech9_Unknown    = 0,
  2847.     DeinterlaceTech9_BOBLineReplicate    = 0x1,
  2848.     DeinterlaceTech9_BOBVerticalStretch    = 0x2,
  2849.     DeinterlaceTech9_MedianFiltering    = 0x4,
  2850.     DeinterlaceTech9_EdgeFiltering    = 0x10,
  2851.     DeinterlaceTech9_FieldAdaptive    = 0x20,
  2852.     DeinterlaceTech9_PixelAdaptive    = 0x40,
  2853.     DeinterlaceTech9_MotionVectorSteered    = 0x80
  2854.     }     VMR9DeinterlaceTech;
  2855.  
  2856. typedef struct _VMR9Frequency
  2857.     {
  2858.     DWORD dwNumerator;
  2859.     DWORD dwDenominator;
  2860.     }     VMR9Frequency;
  2861.  
  2862. typedef 
  2863. enum _VMR9_SampleFormat
  2864.     {    VMR9_SampleReserved    = 1,
  2865.     VMR9_SampleProgressiveFrame    = 2,
  2866.     VMR9_SampleFieldInterleavedEvenFirst    = 3,
  2867.     VMR9_SampleFieldInterleavedOddFirst    = 4,
  2868.     VMR9_SampleFieldSingleEven    = 5,
  2869.     VMR9_SampleFieldSingleOdd    = 6
  2870.     }     VMR9_SampleFormat;
  2871.  
  2872. typedef struct _VMR9VideoDesc
  2873.     {
  2874.     DWORD dwSize;
  2875.     DWORD dwSampleWidth;
  2876.     DWORD dwSampleHeight;
  2877.     VMR9_SampleFormat SampleFormat;
  2878.     DWORD dwFourCC;
  2879.     VMR9Frequency InputSampleFreq;
  2880.     VMR9Frequency OutputFrameFreq;
  2881.     }     VMR9VideoDesc;
  2882.  
  2883. typedef struct _VMR9DeinterlaceCaps
  2884.     {
  2885.     DWORD dwSize;
  2886.     DWORD dwNumPreviousOutputFrames;
  2887.     DWORD dwNumForwardRefSamples;
  2888.     DWORD dwNumBackwardRefSamples;
  2889.     VMR9DeinterlaceTech DeinterlaceTechnology;
  2890.     }     VMR9DeinterlaceCaps;
  2891.  
  2892.  
  2893.  
  2894. extern RPC_IF_HANDLE __MIDL_itf_vmr9_0021_v0_0_c_ifspec;
  2895. extern RPC_IF_HANDLE __MIDL_itf_vmr9_0021_v0_0_s_ifspec;
  2896.  
  2897. #ifndef __IVMRDeinterlaceControl9_INTERFACE_DEFINED__
  2898. #define __IVMRDeinterlaceControl9_INTERFACE_DEFINED__
  2899.  
  2900. /* interface IVMRDeinterlaceControl9 */
  2901. /* [unique][helpstring][uuid][local][object] */ 
  2902.  
  2903.  
  2904. EXTERN_C const IID IID_IVMRDeinterlaceControl9;
  2905.  
  2906. #if defined(__cplusplus) && !defined(CINTERFACE)
  2907.     
  2908.     MIDL_INTERFACE("a215fb8d-13c2-4f7f-993c-003d6271a459")
  2909.     IVMRDeinterlaceControl9 : public IUnknown
  2910.     {
  2911.     public:
  2912.         virtual HRESULT STDMETHODCALLTYPE GetNumberOfDeinterlaceModes( 
  2913.             /* [in] */ VMR9VideoDesc *lpVideoDescription,
  2914.             /* [out][in] */ LPDWORD lpdwNumDeinterlaceModes,
  2915.             /* [out] */ LPGUID lpDeinterlaceModes) = 0;
  2916.         
  2917.         virtual HRESULT STDMETHODCALLTYPE GetDeinterlaceModeCaps( 
  2918.             /* [in] */ LPGUID lpDeinterlaceMode,
  2919.             /* [in] */ VMR9VideoDesc *lpVideoDescription,
  2920.             /* [out] */ VMR9DeinterlaceCaps *lpDeinterlaceCaps) = 0;
  2921.         
  2922.         virtual HRESULT STDMETHODCALLTYPE GetDeinterlaceMode( 
  2923.             /* [in] */ DWORD dwStreamID,
  2924.             /* [out] */ LPGUID lpDeinterlaceMode) = 0;
  2925.         
  2926.         virtual HRESULT STDMETHODCALLTYPE SetDeinterlaceMode( 
  2927.             /* [in] */ DWORD dwStreamID,
  2928.             /* [in] */ LPGUID lpDeinterlaceMode) = 0;
  2929.         
  2930.         virtual HRESULT STDMETHODCALLTYPE GetDeinterlacePrefs( 
  2931.             /* [out] */ LPDWORD lpdwDeinterlacePrefs) = 0;
  2932.         
  2933.         virtual HRESULT STDMETHODCALLTYPE SetDeinterlacePrefs( 
  2934.             /* [in] */ DWORD dwDeinterlacePrefs) = 0;
  2935.         
  2936.         virtual HRESULT STDMETHODCALLTYPE GetActualDeinterlaceMode( 
  2937.             /* [in] */ DWORD dwStreamID,
  2938.             /* [out] */ LPGUID lpDeinterlaceMode) = 0;
  2939.         
  2940.     };
  2941.     
  2942. #else     /* C style interface */
  2943.  
  2944.     typedef struct IVMRDeinterlaceControl9Vtbl
  2945.     {
  2946.         BEGIN_INTERFACE
  2947.         
  2948.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2949.             IVMRDeinterlaceControl9 * This,
  2950.             /* [in] */ REFIID riid,
  2951.             /* [iid_is][out] */ void **ppvObject);
  2952.         
  2953.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2954.             IVMRDeinterlaceControl9 * This);
  2955.         
  2956.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2957.             IVMRDeinterlaceControl9 * This);
  2958.         
  2959.         HRESULT ( STDMETHODCALLTYPE *GetNumberOfDeinterlaceModes )( 
  2960.             IVMRDeinterlaceControl9 * This,
  2961.             /* [in] */ VMR9VideoDesc *lpVideoDescription,
  2962.             /* [out][in] */ LPDWORD lpdwNumDeinterlaceModes,
  2963.             /* [out] */ LPGUID lpDeinterlaceModes);
  2964.         
  2965.         HRESULT ( STDMETHODCALLTYPE *GetDeinterlaceModeCaps )( 
  2966.             IVMRDeinterlaceControl9 * This,
  2967.             /* [in] */ LPGUID lpDeinterlaceMode,
  2968.             /* [in] */ VMR9VideoDesc *lpVideoDescription,
  2969.             /* [out] */ VMR9DeinterlaceCaps *lpDeinterlaceCaps);
  2970.         
  2971.         HRESULT ( STDMETHODCALLTYPE *GetDeinterlaceMode )( 
  2972.             IVMRDeinterlaceControl9 * This,
  2973.             /* [in] */ DWORD dwStreamID,
  2974.             /* [out] */ LPGUID lpDeinterlaceMode);
  2975.         
  2976.         HRESULT ( STDMETHODCALLTYPE *SetDeinterlaceMode )( 
  2977.             IVMRDeinterlaceControl9 * This,
  2978.             /* [in] */ DWORD dwStreamID,
  2979.             /* [in] */ LPGUID lpDeinterlaceMode);
  2980.         
  2981.         HRESULT ( STDMETHODCALLTYPE *GetDeinterlacePrefs )( 
  2982.             IVMRDeinterlaceControl9 * This,
  2983.             /* [out] */ LPDWORD lpdwDeinterlacePrefs);
  2984.         
  2985.         HRESULT ( STDMETHODCALLTYPE *SetDeinterlacePrefs )( 
  2986.             IVMRDeinterlaceControl9 * This,
  2987.             /* [in] */ DWORD dwDeinterlacePrefs);
  2988.         
  2989.         HRESULT ( STDMETHODCALLTYPE *GetActualDeinterlaceMode )( 
  2990.             IVMRDeinterlaceControl9 * This,
  2991.             /* [in] */ DWORD dwStreamID,
  2992.             /* [out] */ LPGUID lpDeinterlaceMode);
  2993.         
  2994.         END_INTERFACE
  2995.     } IVMRDeinterlaceControl9Vtbl;
  2996.  
  2997.     interface IVMRDeinterlaceControl9
  2998.     {
  2999.         CONST_VTBL struct IVMRDeinterlaceControl9Vtbl *lpVtbl;
  3000.     };
  3001.  
  3002.     
  3003.  
  3004. #ifdef COBJMACROS
  3005.  
  3006.  
  3007. #define IVMRDeinterlaceControl9_QueryInterface(This,riid,ppvObject)    \
  3008.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3009.  
  3010. #define IVMRDeinterlaceControl9_AddRef(This)    \
  3011.     (This)->lpVtbl -> AddRef(This)
  3012.  
  3013. #define IVMRDeinterlaceControl9_Release(This)    \
  3014.     (This)->lpVtbl -> Release(This)
  3015.  
  3016.  
  3017. #define IVMRDeinterlaceControl9_GetNumberOfDeinterlaceModes(This,lpVideoDescription,lpdwNumDeinterlaceModes,lpDeinterlaceModes)    \
  3018.     (This)->lpVtbl -> GetNumberOfDeinterlaceModes(This,lpVideoDescription,lpdwNumDeinterlaceModes,lpDeinterlaceModes)
  3019.  
  3020. #define IVMRDeinterlaceControl9_GetDeinterlaceModeCaps(This,lpDeinterlaceMode,lpVideoDescription,lpDeinterlaceCaps)    \
  3021.     (This)->lpVtbl -> GetDeinterlaceModeCaps(This,lpDeinterlaceMode,lpVideoDescription,lpDeinterlaceCaps)
  3022.  
  3023. #define IVMRDeinterlaceControl9_GetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)    \
  3024.     (This)->lpVtbl -> GetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
  3025.  
  3026. #define IVMRDeinterlaceControl9_SetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)    \
  3027.     (This)->lpVtbl -> SetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
  3028.  
  3029. #define IVMRDeinterlaceControl9_GetDeinterlacePrefs(This,lpdwDeinterlacePrefs)    \
  3030.     (This)->lpVtbl -> GetDeinterlacePrefs(This,lpdwDeinterlacePrefs)
  3031.  
  3032. #define IVMRDeinterlaceControl9_SetDeinterlacePrefs(This,dwDeinterlacePrefs)    \
  3033.     (This)->lpVtbl -> SetDeinterlacePrefs(This,dwDeinterlacePrefs)
  3034.  
  3035. #define IVMRDeinterlaceControl9_GetActualDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)    \
  3036.     (This)->lpVtbl -> GetActualDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
  3037.  
  3038. #endif /* COBJMACROS */
  3039.  
  3040.  
  3041. #endif     /* C style interface */
  3042.  
  3043.  
  3044.  
  3045. HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_GetNumberOfDeinterlaceModes_Proxy( 
  3046.     IVMRDeinterlaceControl9 * This,
  3047.     /* [in] */ VMR9VideoDesc *lpVideoDescription,
  3048.     /* [out][in] */ LPDWORD lpdwNumDeinterlaceModes,
  3049.     /* [out] */ LPGUID lpDeinterlaceModes);
  3050.  
  3051.  
  3052. void __RPC_STUB IVMRDeinterlaceControl9_GetNumberOfDeinterlaceModes_Stub(
  3053.     IRpcStubBuffer *This,
  3054.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3055.     PRPC_MESSAGE _pRpcMessage,
  3056.     DWORD *_pdwStubPhase);
  3057.  
  3058.  
  3059. HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_GetDeinterlaceModeCaps_Proxy( 
  3060.     IVMRDeinterlaceControl9 * This,
  3061.     /* [in] */ LPGUID lpDeinterlaceMode,
  3062.     /* [in] */ VMR9VideoDesc *lpVideoDescription,
  3063.     /* [out] */ VMR9DeinterlaceCaps *lpDeinterlaceCaps);
  3064.  
  3065.  
  3066. void __RPC_STUB IVMRDeinterlaceControl9_GetDeinterlaceModeCaps_Stub(
  3067.     IRpcStubBuffer *This,
  3068.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3069.     PRPC_MESSAGE _pRpcMessage,
  3070.     DWORD *_pdwStubPhase);
  3071.  
  3072.  
  3073. HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_GetDeinterlaceMode_Proxy( 
  3074.     IVMRDeinterlaceControl9 * This,
  3075.     /* [in] */ DWORD dwStreamID,
  3076.     /* [out] */ LPGUID lpDeinterlaceMode);
  3077.  
  3078.  
  3079. void __RPC_STUB IVMRDeinterlaceControl9_GetDeinterlaceMode_Stub(
  3080.     IRpcStubBuffer *This,
  3081.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3082.     PRPC_MESSAGE _pRpcMessage,
  3083.     DWORD *_pdwStubPhase);
  3084.  
  3085.  
  3086. HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_SetDeinterlaceMode_Proxy( 
  3087.     IVMRDeinterlaceControl9 * This,
  3088.     /* [in] */ DWORD dwStreamID,
  3089.     /* [in] */ LPGUID lpDeinterlaceMode);
  3090.  
  3091.  
  3092. void __RPC_STUB IVMRDeinterlaceControl9_SetDeinterlaceMode_Stub(
  3093.     IRpcStubBuffer *This,
  3094.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3095.     PRPC_MESSAGE _pRpcMessage,
  3096.     DWORD *_pdwStubPhase);
  3097.  
  3098.  
  3099. HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_GetDeinterlacePrefs_Proxy( 
  3100.     IVMRDeinterlaceControl9 * This,
  3101.     /* [out] */ LPDWORD lpdwDeinterlacePrefs);
  3102.  
  3103.  
  3104. void __RPC_STUB IVMRDeinterlaceControl9_GetDeinterlacePrefs_Stub(
  3105.     IRpcStubBuffer *This,
  3106.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3107.     PRPC_MESSAGE _pRpcMessage,
  3108.     DWORD *_pdwStubPhase);
  3109.  
  3110.  
  3111. HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_SetDeinterlacePrefs_Proxy( 
  3112.     IVMRDeinterlaceControl9 * This,
  3113.     /* [in] */ DWORD dwDeinterlacePrefs);
  3114.  
  3115.  
  3116. void __RPC_STUB IVMRDeinterlaceControl9_SetDeinterlacePrefs_Stub(
  3117.     IRpcStubBuffer *This,
  3118.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3119.     PRPC_MESSAGE _pRpcMessage,
  3120.     DWORD *_pdwStubPhase);
  3121.  
  3122.  
  3123. HRESULT STDMETHODCALLTYPE IVMRDeinterlaceControl9_GetActualDeinterlaceMode_Proxy( 
  3124.     IVMRDeinterlaceControl9 * This,
  3125.     /* [in] */ DWORD dwStreamID,
  3126.     /* [out] */ LPGUID lpDeinterlaceMode);
  3127.  
  3128.  
  3129. void __RPC_STUB IVMRDeinterlaceControl9_GetActualDeinterlaceMode_Stub(
  3130.     IRpcStubBuffer *This,
  3131.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3132.     PRPC_MESSAGE _pRpcMessage,
  3133.     DWORD *_pdwStubPhase);
  3134.  
  3135.  
  3136.  
  3137. #endif     /* __IVMRDeinterlaceControl9_INTERFACE_DEFINED__ */
  3138.  
  3139.  
  3140. /* interface __MIDL_itf_vmr9_0022 */
  3141. /* [local] */ 
  3142.  
  3143. typedef struct _VMR9VideoStreamInfo
  3144.     {
  3145.     IDirect3DSurface9 *pddsVideoSurface;
  3146.     DWORD dwWidth;
  3147.     DWORD dwHeight;
  3148.     DWORD dwStrmID;
  3149.     FLOAT fAlpha;
  3150.     VMR9NormalizedRect rNormal;
  3151.     REFERENCE_TIME rtStart;
  3152.     REFERENCE_TIME rtEnd;
  3153.     VMR9_SampleFormat SampleFormat;
  3154.     }     VMR9VideoStreamInfo;
  3155.  
  3156.  
  3157.  
  3158. extern RPC_IF_HANDLE __MIDL_itf_vmr9_0022_v0_0_c_ifspec;
  3159. extern RPC_IF_HANDLE __MIDL_itf_vmr9_0022_v0_0_s_ifspec;
  3160.  
  3161. #ifndef __IVMRImageCompositor9_INTERFACE_DEFINED__
  3162. #define __IVMRImageCompositor9_INTERFACE_DEFINED__
  3163.  
  3164. /* interface IVMRImageCompositor9 */
  3165. /* [unique][helpstring][uuid][local][object][local] */ 
  3166.  
  3167.  
  3168. EXTERN_C const IID IID_IVMRImageCompositor9;
  3169.  
  3170. #if defined(__cplusplus) && !defined(CINTERFACE)
  3171.     
  3172.     MIDL_INTERFACE("4a5c89eb-df51-4654-ac2a-e48e02bbabf6")
  3173.     IVMRImageCompositor9 : public IUnknown
  3174.     {
  3175.     public:
  3176.         virtual HRESULT STDMETHODCALLTYPE InitCompositionDevice( 
  3177.             /* [in] */ IUnknown *pD3DDevice) = 0;
  3178.         
  3179.         virtual HRESULT STDMETHODCALLTYPE TermCompositionDevice( 
  3180.             /* [in] */ IUnknown *pD3DDevice) = 0;
  3181.         
  3182.         virtual HRESULT STDMETHODCALLTYPE SetStreamMediaType( 
  3183.             /* [in] */ DWORD dwStrmID,
  3184.             /* [in] */ AM_MEDIA_TYPE *pmt,
  3185.             /* [in] */ BOOL fTexture) = 0;
  3186.         
  3187.         virtual HRESULT STDMETHODCALLTYPE CompositeImage( 
  3188.             /* [in] */ IUnknown *pD3DDevice,
  3189.             /* [in] */ IDirect3DSurface9 *pddsRenderTarget,
  3190.             /* [in] */ AM_MEDIA_TYPE *pmtRenderTarget,
  3191.             /* [in] */ REFERENCE_TIME rtStart,
  3192.             /* [in] */ REFERENCE_TIME rtEnd,
  3193.             /* [in] */ D3DCOLOR dwClrBkGnd,
  3194.             /* [in] */ VMR9VideoStreamInfo *pVideoStreamInfo,
  3195.             /* [in] */ UINT cStreams) = 0;
  3196.         
  3197.     };
  3198.     
  3199. #else     /* C style interface */
  3200.  
  3201.     typedef struct IVMRImageCompositor9Vtbl
  3202.     {
  3203.         BEGIN_INTERFACE
  3204.         
  3205.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  3206.             IVMRImageCompositor9 * This,
  3207.             /* [in] */ REFIID riid,
  3208.             /* [iid_is][out] */ void **ppvObject);
  3209.         
  3210.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  3211.             IVMRImageCompositor9 * This);
  3212.         
  3213.         ULONG ( STDMETHODCALLTYPE *Release )( 
  3214.             IVMRImageCompositor9 * This);
  3215.         
  3216.         HRESULT ( STDMETHODCALLTYPE *InitCompositionDevice )( 
  3217.             IVMRImageCompositor9 * This,
  3218.             /* [in] */ IUnknown *pD3DDevice);
  3219.         
  3220.         HRESULT ( STDMETHODCALLTYPE *TermCompositionDevice )( 
  3221.             IVMRImageCompositor9 * This,
  3222.             /* [in] */ IUnknown *pD3DDevice);
  3223.         
  3224.         HRESULT ( STDMETHODCALLTYPE *SetStreamMediaType )( 
  3225.             IVMRImageCompositor9 * This,
  3226.             /* [in] */ DWORD dwStrmID,
  3227.             /* [in] */ AM_MEDIA_TYPE *pmt,
  3228.             /* [in] */ BOOL fTexture);
  3229.         
  3230.         HRESULT ( STDMETHODCALLTYPE *CompositeImage )( 
  3231.             IVMRImageCompositor9 * This,
  3232.             /* [in] */ IUnknown *pD3DDevice,
  3233.             /* [in] */ IDirect3DSurface9 *pddsRenderTarget,
  3234.             /* [in] */ AM_MEDIA_TYPE *pmtRenderTarget,
  3235.             /* [in] */ REFERENCE_TIME rtStart,
  3236.             /* [in] */ REFERENCE_TIME rtEnd,
  3237.             /* [in] */ D3DCOLOR dwClrBkGnd,
  3238.             /* [in] */ VMR9VideoStreamInfo *pVideoStreamInfo,
  3239.             /* [in] */ UINT cStreams);
  3240.         
  3241.         END_INTERFACE
  3242.     } IVMRImageCompositor9Vtbl;
  3243.  
  3244.     interface IVMRImageCompositor9
  3245.     {
  3246.         CONST_VTBL struct IVMRImageCompositor9Vtbl *lpVtbl;
  3247.     };
  3248.  
  3249.     
  3250.  
  3251. #ifdef COBJMACROS
  3252.  
  3253.  
  3254. #define IVMRImageCompositor9_QueryInterface(This,riid,ppvObject)    \
  3255.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3256.  
  3257. #define IVMRImageCompositor9_AddRef(This)    \
  3258.     (This)->lpVtbl -> AddRef(This)
  3259.  
  3260. #define IVMRImageCompositor9_Release(This)    \
  3261.     (This)->lpVtbl -> Release(This)
  3262.  
  3263.  
  3264. #define IVMRImageCompositor9_InitCompositionDevice(This,pD3DDevice)    \
  3265.     (This)->lpVtbl -> InitCompositionDevice(This,pD3DDevice)
  3266.  
  3267. #define IVMRImageCompositor9_TermCompositionDevice(This,pD3DDevice)    \
  3268.     (This)->lpVtbl -> TermCompositionDevice(This,pD3DDevice)
  3269.  
  3270. #define IVMRImageCompositor9_SetStreamMediaType(This,dwStrmID,pmt,fTexture)    \
  3271.     (This)->lpVtbl -> SetStreamMediaType(This,dwStrmID,pmt,fTexture)
  3272.  
  3273. #define IVMRImageCompositor9_CompositeImage(This,pD3DDevice,pddsRenderTarget,pmtRenderTarget,rtStart,rtEnd,dwClrBkGnd,pVideoStreamInfo,cStreams)    \
  3274.     (This)->lpVtbl -> CompositeImage(This,pD3DDevice,pddsRenderTarget,pmtRenderTarget,rtStart,rtEnd,dwClrBkGnd,pVideoStreamInfo,cStreams)
  3275.  
  3276. #endif /* COBJMACROS */
  3277.  
  3278.  
  3279. #endif     /* C style interface */
  3280.  
  3281.  
  3282.  
  3283. HRESULT STDMETHODCALLTYPE IVMRImageCompositor9_InitCompositionDevice_Proxy( 
  3284.     IVMRImageCompositor9 * This,
  3285.     /* [in] */ IUnknown *pD3DDevice);
  3286.  
  3287.  
  3288. void __RPC_STUB IVMRImageCompositor9_InitCompositionDevice_Stub(
  3289.     IRpcStubBuffer *This,
  3290.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3291.     PRPC_MESSAGE _pRpcMessage,
  3292.     DWORD *_pdwStubPhase);
  3293.  
  3294.  
  3295. HRESULT STDMETHODCALLTYPE IVMRImageCompositor9_TermCompositionDevice_Proxy( 
  3296.     IVMRImageCompositor9 * This,
  3297.     /* [in] */ IUnknown *pD3DDevice);
  3298.  
  3299.  
  3300. void __RPC_STUB IVMRImageCompositor9_TermCompositionDevice_Stub(
  3301.     IRpcStubBuffer *This,
  3302.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3303.     PRPC_MESSAGE _pRpcMessage,
  3304.     DWORD *_pdwStubPhase);
  3305.  
  3306.  
  3307. HRESULT STDMETHODCALLTYPE IVMRImageCompositor9_SetStreamMediaType_Proxy( 
  3308.     IVMRImageCompositor9 * This,
  3309.     /* [in] */ DWORD dwStrmID,
  3310.     /* [in] */ AM_MEDIA_TYPE *pmt,
  3311.     /* [in] */ BOOL fTexture);
  3312.  
  3313.  
  3314. void __RPC_STUB IVMRImageCompositor9_SetStreamMediaType_Stub(
  3315.     IRpcStubBuffer *This,
  3316.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3317.     PRPC_MESSAGE _pRpcMessage,
  3318.     DWORD *_pdwStubPhase);
  3319.  
  3320.  
  3321. HRESULT STDMETHODCALLTYPE IVMRImageCompositor9_CompositeImage_Proxy( 
  3322.     IVMRImageCompositor9 * This,
  3323.     /* [in] */ IUnknown *pD3DDevice,
  3324.     /* [in] */ IDirect3DSurface9 *pddsRenderTarget,
  3325.     /* [in] */ AM_MEDIA_TYPE *pmtRenderTarget,
  3326.     /* [in] */ REFERENCE_TIME rtStart,
  3327.     /* [in] */ REFERENCE_TIME rtEnd,
  3328.     /* [in] */ D3DCOLOR dwClrBkGnd,
  3329.     /* [in] */ VMR9VideoStreamInfo *pVideoStreamInfo,
  3330.     /* [in] */ UINT cStreams);
  3331.  
  3332.  
  3333. void __RPC_STUB IVMRImageCompositor9_CompositeImage_Stub(
  3334.     IRpcStubBuffer *This,
  3335.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3336.     PRPC_MESSAGE _pRpcMessage,
  3337.     DWORD *_pdwStubPhase);
  3338.  
  3339.  
  3340.  
  3341. #endif     /* __IVMRImageCompositor9_INTERFACE_DEFINED__ */
  3342.  
  3343.  
  3344. /* Additional Prototypes for ALL interfaces */
  3345.  
  3346. /* end of Additional Prototypes */
  3347.  
  3348. #ifdef __cplusplus
  3349. }
  3350. #endif
  3351.  
  3352. #endif
  3353.  
  3354.  
  3355.